版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fx_odyssey/article/details/78647198
碰到了一个问题,记录下。
代码如下所示:
//source.h
#include <queue>
using namespace std;
typedef int ARR[500];
queue<ARR> arr;
//source.cpp
#include "source.h"
#include <iostream>
#include <iostream>
int main()
{
ARR _arr;
arr.push(_arr);
return 0;
}
{
ARR _arr;
arr.push(_arr);
return 0;
}
/***********************************************分割线***********************************************/
编译错误为:c:\program files (x86)\microsoft visual studio 9.0\vc\include\xmemory(52) : error C2075: 'Target of operator new()' : array initialization needs curly braces
扫描二维码关注公众号,回复:
3120273 查看本文章
查官方文档,错误可能产生的原因:
但这不是啊,后来问人,原来是个低级错误。typedef只能算别名,并没有产生任何新的数据结构,修改如下:
//source.h
#include <queue>
using namespace std;
struct ARR{
int arr[500];
};
int arr[500];
};
queue<ARR> arr;
//source.cpp
#include "source.h"
#include <iostream>
#include <iostream>
int main()
{
ARR _arr;
arr.push(_arr);
return 0;
}
{
ARR _arr;
arr.push(_arr);
return 0;
}
编译通过。。