コードをコンパイルするために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));
}
Microsoft Virtual Stdio を使用している場合、この問題は発生しません。したがって、行を追加しようとしました
#include <stdlib.h>
Basic.h に変更すると、エラーが消えます。なぜこのようなことが起こるのか、今になって疑問に思っています。「namespace std」には既に stdlib.h が含まれていませんか? どうもありがとう。