Static array allocation
本问题已经有最佳答案,请猛点这里访问。
我有alloc的这个实现,它将内存作为动态数组分配。
我的问题是,数组和指针声明为静态意味着什么?它如何影响调用alloc的函数?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #define ALLOCSIZE 10000 /* size of available space */ static char allocbuf[ALLOCSIZE]; /* storage for alloc */ static char *allocp = allocbuf; /* next free position */ char *alloc(int n) /* return pointer to n characters */ { if (allocbuf + ALLOCSIZE - allocp >= n) { /* it fits */ allocp += n; return allocp - n; /* old p */ } else /* not enough room */ return 0; } |
My question is that what does it mean that the array and pointer are declared static?
它意味着数组的生存期是程序的整个执行过程。在文件范围内定义的任何对象(有或没有