gcc版本会影响malloc等功能吗?

Uma*_*man 0 c++ eclipse linux malloc

我正在尝试打开一个使用我不知道的版本开发的项目.gcc 4.4已安装在我的red hat linux上.它给出了多个错误.其中一个是函数malloc ...它说"无效的参数.候选者是void*malloc(?)"..而我正在将一个整数变量传递给这个函数"malloc(size)"..可以任何一个帮助我有什么问题..

umair

Bla*_*Bat 5

您应该更喜欢在malloc上使用C++"new"和"delete"运算符.如果出现错误,malloc返回0,new会抛出异常(我认为这是一个"好"的方法)

http://www2.research.att.com/~bs/bs_faq2.html#malloc

否则,malloc的原型是:

void*malloc(size_t size);

所以要分配一个int,你会:

int*my_int =(int*)malloc(sizeof(int));

你需要通过"(int*)"转换"malloc"的结果是因为malloc返回一个void*.C++不允许将void*赋给int*.如果您愿意,可以使用C++ static_cast而不是C cast.