我有以下用于创建动态分配的2D数组的C代码。
numbersArray = (int **)malloc(sizeof(int *)* primeNumber);
for (i =0 ; i < primeNumber; i++)
numbersArray[i] = (int *)malloc(sizeof(int)*2);
numbersArray
是全局定义的,primeNumber只是我在程序执行期间计算的数字。
我的程序运行良好而没有问题。我可以对阵列进行各种处理。它完全正常。
我的问题是Xcode 5在调试时没有显示numbersArray
的内容。它只显示以下内容:
为什么不能正确显示动态分配的数组,以便能够看到数组中的每个单元格?
我在发布之前检查了类似的问题,他们讨论了动态分配,编译器在运行之前不知道数组大小,但我想我以前记得(在以前版本的Xcode中)我能够看到动态分配的数组的内容。
这里到底发生了什么?它总是像这样,还是Xcode 5,或者我有配置Xcode? p>
答案 0 :(得分:1)
首先,please don't cast the return value of malloc()
in C。
现在,我想你错了。除非它正在进行相当高级的分析,否则调试器无法知道int **
变量应该被解释为特定大小的数组。
您经常可以做的是使用各种“视图内存为...” - 键入命令来检查内存。由于您的数组是“锯齿状”,即每行都是指向该行数据的指针而不是整个数组是单个连续分配,这将更加复杂。