【发布时间】:2015-12-15 15:46:52
【问题描述】:
我是C 的新手,我正在尝试创建一个二维字符数组。
这背后的逻辑是获取未知数量的字符串输入
来自用户并能够访问这些字符串
(每个字符串都以":" 结尾)但是当我尝试调试时,我得到了:
<Error reading characters of string>
这是代码:
int main()
{
int j = 0, rows = 50;
int i=0, lines = 50;
char **names;
names = (char**)malloc(lines*sizeof(char*));
if (i >= lines)
{
names = (char**)realloc(names, 10 * sizeof(char*));
lines = lines * 10;
}
for (j ; names[i][j] != ':'; j++)
{
*names = (char*)malloc(rows * sizeof(char));
if (j >= rows)
{
*names = (char*)realloc(names, 10 * sizeof(char));
rows = rows * 10;
}
scanf("%c", &names[i][j]);
}
i++;
return 0;
}
【问题讨论】:
-
仅在 C++ 中需要强制转换 malloc() 和家族的返回值,但在 C 中不建议使用。
-
if (i >=lines) 永远不会执行
标签: c arrays string pointers 2d