我有以下代码
#include<stdio.h>
int main () {
void *result[20];
void *endptr;
void *x;
for (i = 0; i < 20; i++) {
result[i] = malloc(10);
printf("111 : %d\n",result[i]);
}
endptr= sbrk(0);
printf("\n222 : %d\n",endptr);
x = malloc(60); ----------- error
return 0;
}
我想打印所有空指针的数值和sbrk函数调用form malloc的次数?
如果我在printf语句中打印*endptr,它会给我错误。目前我认为它会打印分配内存的地址。%x只需将当前值转换为十六进制并打印就行了?
x=malloc(60)也给出了错误:void值不应该被忽略
我该怎么做?
谢谢
最佳答案
sbrk(0)返回“program break”的当前大小,它实际上不是指针,因此取消对它的引用将产生错误。
http://en.wikipedia.org/wiki/Sbrk
http://pubs.opengroup.org/onlinepubs/007908799/xsh/brk.html
关于c - sbrk和malloc在C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23091416/