Я не использовал C более 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'? Какая странная среда ... – nneonneo
Вы создаете массив переменной длины 'char word [length];' (** проблема безопасности **), затем присваиваете свой адрес 'rtnPtr' - функция завершает уничтожение локального массива символов' слово [длина] '. Вы возвращаете указатель на то, что перестает существовать. –
@nneonneo: Это скорее предпосылка для этого задания. Я просто не должен использовать его для этого. – MrWolf