我正在練習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