本人小初学者,请问一个有关问题,类数据成员包含stack时malloc该类数组时出现的
本人小菜鸟,请教一个问题,类数据成员包含stack<T>时malloc该类数组时出现的
我自定义了一个类A, 类A里面包含一个stack<T>的数据成员staA,然后我malloc了一个类型A的数组
但是在调用A.staA.push(T)的时候总是告诉我访问冲突
我想原因是不是这样,malloc没有给staA预分配空间,导致在插入的时候出现了访问冲突,但stack也没有像vector那样能初始化时候vector<T>.resize(size)这样的初始化方式可以写在类A无参的构造函数里面啊,怎么给stack<T> staA预分配空间啊
突然不知所措,也不知道怎么改动
class A{
stack<T> staA;
A(){}
}
main(){
T* test = (T*)malloc(5*sizeof(A));
T b;
test[0].push(b);//这里报错 这种状况如何处理啊 我的类A里面的stack数据成员想保留 或是其它实现数据成员stack方式也行
}
------解决方案--------------------
class A{
public:
stack<T> staA;
A(){}
}
T* test = (T*)malloc(5*sizeof(A));
==>
T* test = new A[5];
我自定义了一个类A, 类A里面包含一个stack<T>的数据成员staA,然后我malloc了一个类型A的数组
但是在调用A.staA.push(T)的时候总是告诉我访问冲突
我想原因是不是这样,malloc没有给staA预分配空间,导致在插入的时候出现了访问冲突,但stack也没有像vector那样能初始化时候vector<T>.resize(size)这样的初始化方式可以写在类A无参的构造函数里面啊,怎么给stack<T> staA预分配空间啊
突然不知所措,也不知道怎么改动
class A{
stack<T> staA;
A(){}
}
main(){
T* test = (T*)malloc(5*sizeof(A));
T b;
test[0].push(b);//这里报错 这种状况如何处理啊 我的类A里面的stack数据成员想保留 或是其它实现数据成员stack方式也行
}
------解决方案--------------------
class A{
public:
stack<T> staA;
A(){}
}
T* test = (T*)malloc(5*sizeof(A));
==>
T* test = new A[5];