我正在尝试声明一个方阵,但我得到的段错误值大于 1446 的行/列。我在“手动二进制搜索”中发现了这个值。
这是我的代码片段:
boolean matrix[vertex][vertex];
memset(matrix, 0, sizeof(matrizAdjacencia[0][0]) * vertex * vertex);
最初的运行试图声明 32768*32768 个位置。但它失败了,然后我开始修复低值,直到找到这个 1446 值。代码在 memset() 之前失败;
布尔类型只是一个
typedef enum {true, false} boolean;
运行附加gdb的程序时,产生的错误是:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00007fff5f3ff548
0x00007fff8e6a5fba in tzload ()
提前致谢,