【发布时间】:2013-01-09 13:43:41
【问题描述】:
在下面的代码中,我要求用户给我一些字符串。我制作了一个二维指针 char 数组,以便使用指针字符串读取输入,该指针字符串指向长度为 50 的字符串的开头。我的问题是我在输入第一个字符串后一直崩溃.. 我假设我的问题与重新分配有关。我不习惯它..你能帮忙弄清楚发生了什么吗?我尝试使用 netbeans 进行调试,但没有看到任何有趣的东西,因为它没有为由 realloc 生成的新地址提供反馈!
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *str,**string,buffer[50],temp[2];
int i,j,q,size,counter;
size=10;
string=(char**) calloc(size,sizeof(char*));
for (i=0; i<size; i++) string[i]=(char*) malloc(50*sizeof(char));
printf("\nGimme strings, terminate input with x");
i=0;
gets(string[i]);
temp[0]=120;//x
temp[1]='\0';
size=0;
while(strcmp(string[i],temp)!=0)
{
string=realloc(string,size*sizeof(char**));
i++;
gets(string[i]);
size++;
counter++;
}
return 0;
}
我想用这个 realloc 使指针表更大。
【问题讨论】:
-
strings[I] = realloc( strings[I], size * sizeof(char) ); -
但我不想让字符串变大.. 我想让字符串表变大!
-
在
sun()/str/buffer/j/q(未使用)和单行for循环之后,我不再试图找出代码。到目前为止,我会去帮助某人,而且质量如此低下的示例代码是浪费时间。 -
哦,好的,您可以编辑您的问题以明确说明。
-
1) 是的,我知道gets..还没有尝试过fgets。我会尽快。 2) 是的,很抱歉未使用的变量.. 这不是所有代码!!!!!!!!! 3)一行for循环有什么问题?
标签: c generics pointers realloc