c - Realloc C 字符串数组堆损坏

标签 c arrays visual-studio-2010

我正在尝试创建动态字符串数组作为读取文件的缓冲区。关键是数组必须以给定的大小声明,但如果文件包含的行数多于缓冲区大小,则必须调整大小。我创建的缓冲区如下所示:

#define N 32

char **array = (char**) malloc((N+1)*sizeof(char*));

当涉及到重新分配时,我已经尝试过这种方式:

array = (char**) realloc(array, (2*N+1)*sizeof(char*));

但不幸的是,它会导致堆损坏。我应该如何正确地做?

最佳答案

你需要两个维度,像这样:

char **array = malloc((N+1) * (numEntries) * sizeof(char));

请注意,我使用的是 sizeof(char),而不是 sizeof(char *)

关于c - Realloc C 字符串数组堆损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20271110/

相关文章:

c++ - 在类成员函数中存储一个字符串数组并返回它

asp.net - 发布期间的自定义app_offline.htm文件

c - '#pragma import on' 有什么作用?

c - 生成迭代的程序

c - fopen 一切 - 这可能吗?

android - 使用ndk构建错误编译具有多个c文件的 native android库 * No rule to make target

javascript - 访问对象内部的数组

c - 查找数组中整数的最大连续和

visual-studio-2010 - Visual Studio : unable to delete folder this function is not supported on this system

c# - 智能感知中没有 Where 的 List<T>