我正在练习g ++编译我的代码,但错误“malloc未在此范围内声明”在开始时不断出现。我与这个错误代码片段看起来像:使用g ++时出错:'malloc'未在此范围内声明
/*------Basic.h--------*/
using namespace std;
/*------A.h------------*/
class A{
private:
double* _data;
public:
A(int N);
}
/*------A.cpp----------*/
A::A(int N){
_data=(double*)malloc(N*sizeof(double));
}
这个问题,当我使用微软的Virtual STDIO从未出现。因此,我试图在Basic.h中添加一行
#include <stdlib.h>
,并且错误消失。现在我想知道为什么会发生这种事情。没有“命名空间标准”已包含stdlib.h?非常感谢。
密切相关(几乎是重复的)http://stackoverflow.com/questions/3278864/what-is-the-difference-between-header-file-and-namespace – jogojapan 2012-07-11 03:49:11
也在这里:http://stackoverflow.com /问题/ 5115556/C-using命名空间和包括。我将投票结束重复。 – jogojapan 2012-07-11 03:52:33
避免在标题中使用指令。 – GManNickG 2012-07-11 06:07:14