【发布时间】:2012-12-18 01:45:05
【问题描述】:
我有这个似乎可以工作的简单代码(我用调试器检查过)但是当函数执行结束时,字符串没有保存在原始变量中。
void getString(char *iText);
int main()
{
char *inputText=malloc(sizeof(char));
getString(inputText);
puts(inputText);
free(inputText);
system("pause");
return 0;
}
void getString(char *iText)
{
char c;
int i=0;
while((c=getchar()) != '\n')
{
iText = realloc(iText,sizeof(char)*(i+1));
iText[i]=c;
i++;
}
iText = realloc(iText, sizeof(char)*(i+1));
iText[i]='\0';
}
当这个小脚本结束时,我看到了一些
ε■ε■ε■ε■ε■ε■ε■ε■ε■ε■ε■ε■▲יע`*
如果我在我的 main 函数中编写这段代码,它就可以工作,所以我猜这与我在函数中使用指针的方式有关。
【问题讨论】:
-
只要让
getString返回指针,就简单多了。 -
感谢您的建议,我没有考虑过这个选项!
标签: c arrays string pointers char