【发布时间】:2015-02-11 23:20:51
【问题描述】:
我正在读取我的输入并将其放入指针中。我用过malloc,所以不知道哪里错了
代码:
#define BUFFER 30 //in my .h file
char *inStr;
inStr = malloc(sizeof(char*)*BUFFER);
scanw("%s", &inStr);
inStr[strlen(inStr)] = '\0';
mvwprintw(stdscr, 0, 0, "%s",inStr);
我正在尝试将其输出到 ncurses 板上,但不确定为什么会发生这种情况。当我按 Enter 输入时它崩溃了
【问题讨论】:
-
什么是
buffer?它的内容是什么?你怎么知道malloc()成功了?inStr中放入了什么?为什么还要写inStr[strlen(inStr)] = '\0'; -
sizeof(char*)?BUFFER是什么? -
你 malloc 了一些东西,好吧。您确定
char*不应该是char吗?第四行似乎完全没用,因为scanw应该为您终止该字符串(如果它 没有,您认为strlen会如何工作?)。而这个:scanw("%s", &inStr);应该是scanw("%s", inStr);