ここでの目的は、2次元マトリックスのように機能するポインタを持つことです。私は、ポインタと整数ポインタの配列を作成するためのコードの次のビットをテストしました。コンパイルして正常に動作します。 (これは簡易版ですが、私は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
です。
大きなコードのセクションを貼り付けることができましたが、私はこのポインタが適切な方法で定義されていないため、これがすべて起こっているとほとんど確信しています。不器用で不器用なことをやっていますか?あるいは、残りのコードをバグに目を通す必要がありますか?
うわー、コード全体で配列の定義が間違っていました。私は誓うことができました[5]私に0から5の配列を与えました=) – Malabarba