我使用这种方法在2d数组上做malloc,我的来源是 http://c-faq.com/aryptr/dynmuldimary.html和修改2D数组的malloc策略,所以malloc成功:
int
main(int argc, char *argv[])
{
long **array = NULL;
array = malloc(5 * sizeof(long *));
for (int i = 0; i < 5; i++)
array[i] = malloc(3 * sizeof(long));
array[4][2] = 515;
array[4][3] = 212;
array[4][10000] = 3;
printf("%ld\n", array[4][10000]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么在返回之前的最后三行中的任何一行中都没有出现分段错误?它是否安全(忽略了自由的存在)?