【发布时间】:2017-03-15 19:33:25
【问题描述】:
我正在尝试用 C 编写一个 shell 程序。下面的函数应该获取用户行输入。我在尝试 malloc 的行上不断收到“从 void* 到 char** 的无效转换错误。
我不明白为什么。谁能解释一下?
char *get_line_input(void)
{
int scan;
int buff_size = 1024;
int argument_tracker = 0;
char *line = malloc(sizeof(char) * buff_size);
while (1) {
scan = getchar();
if (scan == '\n') {
line[argument_tracker] = '\0';
return line;
} else {
line[argument_tracker] = scan;
}
argument_tracker++;
}
}
【问题讨论】:
-
你确定你没有使用c++编译器
-
无法重现:干净编译。
-
从 '
void*' 到 'char**' 错字从 'void*' 到 'char*' ? -
#ifdef __cplusplus#error arrrgh! C++#endif