这里的目标是让指针的工作方式类似于2D矩阵。我测试了以下代码,用于创建指针和整数指针数组。它编译和运行良好。 (这是一个简化版本,我已经试过分配/打印值mymatrix[x][y]
,它工作正常。)使用指向指针数组的指针分割错误和内存损坏
#include <iostream>
int **mymatrix;
int main(int argc, char* args[]){
mymatrix = new int*[100] ;
for(int n = 0; n <= 100; n++){
mymatrix[n] = new int[200] ;
}
return 0;
}
但是,只要我这个片段复制到另一个代码(这在以前运行良好),该代码仍然编译但无法运行。没有与此代码段相关的错误或警告。这很奇怪,因为mymatrix
甚至没有与代码的其余部分进行交互(在被定义之后它就再也没有被使用过了)。
中断执行的实际错误在尝试加载字体时崩溃,尝试分配值时为Segmentation Fault
,而在Memory Corruption
(我认为是线程的巨大日志输出)之间会有所不同。
我可以粘贴较大代码的部分,但我几乎确信这一切都发生,因为我没有以适当的方式定义这个指针。我在这里做些笨拙或不安全的事情吗?或者我应该开始浏览我的代码的其余部分以查找错误?
哇,事实证明我的整个代码中我的数组定义是错的。我可以发誓A [5]给了我一个从0到5的数组。=) – Malabarba