在这个问题,有人建议意见,我应该不会投的结果malloc,即
int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
而不是:
int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?
在C中,我们可以转换void*为任何其他指针.
但是C++禁止它.
int *a = malloc(4);
Run Code Online (Sandbox Code Playgroud)
导致此错误:
invalid conversion from ‘void*’ to ‘int*’ [-fpermissive]
Run Code Online (Sandbox Code Playgroud)
c ++中有潜在的危险吗?
有没有c ++的例子?
我有一个.cc文件,使用iostream和malloc.我怎么编译呢?使用g++,它说
error: 'malloc' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
使用gcc,它说
fatal error: iostream: No such file or directory
Run Code Online (Sandbox Code Playgroud)
源代码位于http://sequitur.info/sequitur_simple.cc
UPDATE
我改变malloc了new并且去free了delete.我仍然遇到很多错误.例如
/usr/include/c++/4.6/new:103:14: error: initializing argument 2 of âvoid* operator new(std::size_t, void*)â [-fpermissive]
Run Code Online (Sandbox Code Playgroud)