const unsigned int PATRON_TABLE_SIZE = 10001;
Patron* patronTable[PATRON_TABLE_SIZE];
パトロンは基本的な情報を含むクラスです。patronTable [500]のポインタを確認しましたが、NULLですが、patronTable[5000]のポインタがNULLではありません。なぜこれがそうなのかについての情報を見つけることができません。どんな助けでも大歓迎です!
c++ は、ポインターの配列を任意の設定値に自動的に初期化しません (明示的に指示しない限り)。したがって、あなたが見ているのは、配列が割り当てられたスペースをたまたま占めていたランダムなガベージです。patronTable
あなたがPATRON_TABLE_SIZE
言ったように、長いです
グローバルではない、または静的に宣言されている C++ の配列は、デフォルトでは初期化されません。
アンマネージ (.NET ではない) コードをプログラムする場合、メモリはクリアされません。すべての配列要素を NULL にしたい場合は、次のようにしますmemset(patronTable, 0, PATRON_TABLE_SIZE * sizeof(Patron[0]));
配列の内容を初期化するには、次のようにします。
Patron* patronTable[PATRON_TABLE_SIZE] = { };
これにより、すべての値がゼロに設定されます。