【发布时间】:2019-11-20 13:33:44
【问题描述】:
分配双指针后我遇到了一个有趣的问题。
int **bucket;
bucket = (int **)malloc(sizeof(int) * 10);
我创建了一个双指针没有任何问题,我还创建了一个单指针。
int *size;
size = (int *)malloc(sizeof(int) * 10);
在第一个循环中,我分配了bucket 的每个元素,第二个循环,我为size 的每个元素分配了零。
for (i = 0; i < 10; i++)
*(bucket + i) = (int *)malloc(sizeof(int) * 1);
for (i = 0; i < 10; i++)
size[i] = 0;
当我对大小进行分配操作时,它会删除存储桶中某些元素的地址。这里是我调试时的截图。
在这个阶段我还没有进入第二个循环:
什么会导致这个问题?有什么想法吗?
【问题讨论】:
-
sizeof(int) != sizeof(int*)
标签: c pointers segmentation-fault