#include <stdio.h>
#define OVERLODE_MODE 0
#define MAXSIZE 12
unsigned char membuf[MAXSIZE];
unsigned char *pmem = membuf;
unsigned char *invalidmem = membuf + MAXSIZE;
void *DirtyAlloc(size_t sz)
{
#if OVERLODE_MODE
unsigned char *p = pmem;
p += sz;
if (p >= invalidmem) {
return NULL;
}
return (void *)p;
#else
pmem += sz;
if (pmem >= invalidmem) {
return NULL;
}
return (void *)pmem;
#endif
}
int main(void)
{
int *pnum = (int *)NULL;
int *parr = (int *)NULL;
size_t nums;
size_t i;
pnum = (int *)DirtyAlloc(sizeof(int));
if (pnum != NULL) {
scanf("%d", pnum);
printf("%d\n", *pnum);
}
scanf("%u", &nums);
parr = (int *)DirtyAlloc(sizeof(int) * nums);
if (parr != NULL) {
for (i = 0; i < nums; i++) {
parr[i] = i;
}
for (i = 0; i < nums; i++) {
printf("%d\t", parr[i]);
}
putchar('\n');
}
return 0;
}
DirtyAlloc
最新推荐文章于 2024-07-10 19:48:24 发布