#include char * ptr1 = "jan"; char * ptr2 = "kowalski"; 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() { char * p1 = alloc(strlen(ptr1)); strcpy (p1, ptr1); asm("nop"); char * p2 = alloc(strlen(ptr2)); strcpy (p2, ptr2); asm("nop"); return 1; }