(本質的には) 文字の 2 次元配列、つまり文字列の配列にメモリを動的に割り当てようとしています。
私のコードは次のとおりです。
typedef char LineType[MAX_CHARS+1];
LineType* lines;
int c = 0;
int N = 2;
lines = (LineType *) malloc (N * sizeof( LineType) );
do {
if (c > N ) {
N *=2;
lines = (LineType*) realloc (lines, N * sizeof( LineType));
}
.
.
.
c++;
} while ( . . . )
これは正常にコンパイルされますが、実行時に失敗し、ヒープ破損の可能性と dbgheap.c での破損に関する警告が表示されます (in: _CrtIsValidHeapPointer)。
私は何を間違っていますか?おそらくデータ構造に固定/動的次元が混在していることが原因であると考えました...しかし、文字列の(さまざまなサイズの)配列にメモリを宣言して動的に割り当てる(および再割り当てする)最良の方法は何ですか?それぞれが固定サイズです)?
事前にどうもありがとう
2012 年 8 月 26 日更新
人々のコメントや提案に合わせてコードを少し変更しました。問題はまだ続きます...