【发布时间】:2014-11-06 01:59:51
【问题描述】:
我已经 3 年多没用过 C 了,我对很多东西都生疏了。
我知道这可能看起来很愚蠢,但我目前无法从函数返回字符串。请假设:我不能为此使用string.h。
这是我的代码:
#include <ncurses.h>
char * getStr(int length)
{
char word[length];
for (int i = 0; i < length; i++)
{
word[i] = getch();
}
word[i] = '\0';
return word;
}
int main()
{
char wordd[10];
initscr();
*wordd = getStr(10);
printw("The string is:\n");
printw("%s\n",*wordd);
getch();
endwin();
return 0;
}
我可以捕获字符串(使用我的getStr 函数),但我无法正确显示它(我得到垃圾)。
感谢您的帮助。
【问题讨论】:
-
您可以使用
ncurses.h,但不能使用string.h?好奇怪的环境…… -
你创建一个可变长度数组
char word[length];(安全问题),然后将其地址分配给rtnPtr——函数结束销毁本地char数组word[length].您正在返回一个指向不再存在的东西的指针。 -
@AshishAhujaツ:这是 2014 年课程中的作业要求之一。它本来是具有挑战性的,教授认为简单地使用 string.h 太容易了。我希望这能为问同样问题的人澄清一下。干杯。
-
@AshishAhujaツ:这些信息无关紧要。要求就在那里,这绝对是最重要的。 ;)
标签: c string return local-variables