Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MINIX中编译时出现“char not expected”错误_C_Cc_Minix - Fatal编程技术网

在MINIX中编译时出现“char not expected”错误

在MINIX中编译时出现“char not expected”错误,c,cc,minix,C,Cc,Minix,我需要在屏幕上打印一行,然后获取用户输入,但是printfblah语句导致我的代码无法编译。错误消息说“char不是预期的,但是当我注释printf语句时,代码会编译 #include <stdio.h> #include <stdlib.h> int main(void) { printf("Welcome to the shell!\n"); printf("shell:>"); char* inp = (char*)malloc

我需要在屏幕上打印一行,然后获取用户输入,但是printfblah语句导致我的代码无法编译。错误消息说“char不是预期的,但是当我注释printf语句时,代码会编译

#include <stdio.h>
#include <stdlib.h>

int main(void) 
{ 
    printf("Welcome to the shell!\n"); 
    printf("shell:>");
    char* inp = (char*)malloc(20); // error at this line
}

我在MINIX 3.1.0中使用cc编译器。MINIX C编译器没有遵循现代标准,这意味着只能在函数开始时声明局部变量

你需要做些什么

char *inp;

printf("Welcome to the shell!\n"); 
printf("shell:>");

inp = malloc(20);

当我说现代时,我指的是C99标准。MINIX编译器似乎遵循的旧C89标准,以及直到最近的Visual Studio C编译器直到VS2013及更高版本才支持C99的大部分内容,只允许在块的开头声明。

MINIX C编译器没有遵循现代标准,这意味着局部变量只能在函数开始时声明

你需要做些什么

char *inp;

printf("Welcome to the shell!\n"); 
printf("shell:>");

inp = malloc(20);

当我说现代时,我指的是C99标准。MINIX编译器似乎遵循的较旧的C89标准,以及Visual Studio C编译器,直到最近,C99的许多部分直到VS2013及更高版本才得到支持,只允许在块的开头声明。

请在C中输入malloc和family的返回值,并包括stdlib.h,不要忘记释放分配的内存。它包含在我的原始程序中,我刚才在这里添加了它。t稍后在程序中释放内存。:-我现在将检查malloc链接。谢谢。请在C中输入malloc和family的返回值,并包括stdlib.h,不要忘记释放分配的内存。它包含在我的原始程序中,我刚才在这里添加了它。t稍后在程序中释放内存。:-我现在将检查malloc链接。谢谢,真管用!谢谢我完全不知道它曾经是这样工作的。为了得到一个好的答案,应该指出标准的哪个版本引入了现代功能。其他一些语言中的功能在c89之前就已经出现了。这很有效!谢谢我完全不知道它曾经是这样工作的。为了得到一个好的答案,应该指出标准的哪个版本引入了现代功能。其他一些语言中的功能早于c89。