使用Xcode 5调试动态分配的2D阵列

时间:2013-11-18 15:33:05

标签: c arrays debugging xcode5

我有以下用于创建动态分配的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的内容。它只显示以下内容:

Debug area in Xcode 5

为什么不能正确显示动态分配的数组,以便能够看到数组中的每个单元格?

我在发布之前检查了类似的问题,他们讨论了动态分配,编译器在运行之前不知道数组大小,但我想我以前记得(在以前版本的Xcode中)我能够看到动态分配的数组的内容。

这里到底发生了什么?它总是像这样,还是Xcode 5,或者我有配置Xcode?

1 个答案:

答案 0 :(得分:1)

首先,please don't cast the return value of malloc() in C

现在,我想你错了。除非它正在进行相当高级的分析,否则调试器无法知道int **变量应该被解释为特定大小的数组。

您经常可以做的是使用各种“视图内存为...” - 键入命令来检查内存。由于您的数组是“锯齿状”,即每行都是指向该行数据的指针而不是整个数组是单个连续分配,这将更加复杂。