一、问题描述
最近在学习new运算符时,遇到了一个错误:declaration does not declare anything,即声明没有声明任何东西,该语句无效。下面是出错的代码片段:
#include <new>
struct chaff
{
char dross[20];
int slag;
};
char buffer1[50];
char buffer2[500];
int main()
{
struct chaff *p1, *p2;
int *p3, *p4;
p1 = new chaff; //出错行
}
二、出错原因
编译器不知道chaff是什么东西。改成struct chaff。注意typedef struct chaff…不能解决问题。
三、解决后的代码
方案1:写全struct chaff.
#include <new>
struct chaff
{
char dross[20];
int slag;
};
char buffer1[50];
char buffer2[500];
int main()
{
struct chaff *p1, *p2;
int *p3, *p4;
p1 = new struct chaff;
}
其余方案仍在研究当中。