【发布时间】:2016-03-26 15:19:50
【问题描述】:
我正在尝试为 100 个整数分配空间。但最终得到 2 并且不知道为什么!我尝试了malloc() 和calloc,但可以理解的是没有区别。
代码:
#define MAX 100
int *arr = (int *)calloc(MAX, sizeof(int)); //same with malloc(MAX * sizeof(int))
printf("MAIN before memset: %d | %d\n",
(int)(sizeof(arr)/sizeof(arr[0])), (int)(sizeof(arr)));
if(!arr) {
fprintf(stderr, "A malloc error occured.\n");
exit(1);
}
memset (arr, 0, MAX);
printf("MAIN: %d\n", (int)(sizeof(arr)/sizeof(arr[0])));
输出:
MAIN before memset: 2 | 8
MAIN: 2
我缺少什么?我只是想为 100 个整数分配一个数组/指针。
【问题讨论】:
-
没有演员也是一样
标签: c pointers memory-management malloc sizeof