【发布时间】:2018-09-02 08:54:01
【问题描述】:
此代码没有段错误 我试图“调试”它,所以我知道它什么时候出现段错误,但不明白为什么
range(int **range, int min, int max) //prototype
*range = (int *)malloc(sizeof(int) * (max - min));
if (*range == NULL)
return (0);
while (min < max)
{
range[0][z] = min; //Doesn't segfault
printf("%d\n",range[0][z]);
min++;
z++;
}
这个可以
range(int **range, int min, int max)//prototype
*range = (int *)malloc(sizeof(int) * (max - min));
if (*range == NULL)
return (0);
while (min < max)
{
*range[z] = min;//Segfault Here
printf("%d\n",range[0][z]);
min++;
z++;
}
感谢您的帮助;)
【问题讨论】:
-
z在哪里/如何声明?它是如何初始化/分配的?注意:range不是二维数组,而是指向int的指针。
标签: c arrays segmentation-fault int malloc