strlen-c/cpp/_rvmain.cpp

55 lines
737 B
C++
Raw Normal View History

2024-05-22 10:58:01 +00:00
#include <stdint.h>
2024-05-22 11:50:59 +00:00
2024-05-22 10:58:01 +00:00
int strlen(char *s)
{
char *p = s;
while (*p != '\0')
p++;
return p - s;
}
void strcpy(char *s, char *t)
{
while (*s++ = *t++);
}
#define ALLOCSIZE 10000
static char allocbuf[ALLOCSIZE];
static char *allocp = allocbuf;
char *alloc(int n)
{
if (n % 4 != 0) {
n += 4 - (n % 4);
}
if (allocbuf + ALLOCSIZE - allocp >= n) {
allocp += n;
return allocp - n;
} else
return 0;
}
int main() {
2024-05-22 11:11:23 +00:00
struct key{
2024-05-22 11:50:59 +00:00
char *ptr;
2024-05-22 11:11:23 +00:00
int8_t count;
} keytab[10];
2024-05-22 10:58:01 +00:00
2024-05-22 11:50:59 +00:00
struct key * ptr1 = (struct key *) alloc(100);
ptr1[0].ptr = p1;
ptr1[0].count = strlen(ptr1[0].ptr);
2024-05-22 11:14:52 +00:00
asm ("nop");
2024-05-22 10:58:01 +00:00
return 1;
}