我正在尝试为(本质上是)一个二维字符数组动态分配内存 - 即 - 一个字符串数组。
我的代码如下:
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 ( . . . )
这编译得很好,但在运行时失败,给出关于可能的 HEAP CORRUPTION 的警告并在 dbgheap.c 处中断(在:_CrtIsValidHeapPointer)
我究竟做错了什么?我认为这可能是由于数据结构中混合了固定/动态维度......但是,然后为字符串数组(不同大小)声明然后动态分配(和重新分配)内存的最佳方法是什么(每个都是固定大小的)?
非常感谢提前
2012 年 8 月 26 日更新
我稍微修改了代码以适应人们的意见和建议。问题依然存在...