在 Fedora 上的 g++ 中重现此错误:
如何尽可能简单地重现此错误:
将此代码放在 main.c 中:
#include <stdio.h>
int main(){
int *foo;
foo = (int *) std::malloc(sizeof(int));
*foo = 50;
printf("%d", *foo);
}
编译它,它返回一个编译时错误:
el@apollo:~$ g++ -o s main.c
main.c: In function ‘int main()’:
main.c:5:37: error: ‘malloc’ was not declared in this scope
foo = (int *) malloc(sizeof(int));
^
像这样修复它:
#include <stdio.h>
#include <cstdlib>
int main(){
int *foo;
foo = (int *) std::malloc(sizeof(int));
*foo = 50;
printf("%d", *foo);
free(foo);
}
然后它编译并正确运行:
el@apollo:~$ g++ -o s main.c
el@apollo:~$ ./s
50