C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 向量动态内存分配的私有成员向量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是C的新手(我学过Fortran编程),我想为多维表动态分配内存.该表是一个私有成员变量:

class theclass{
public:
  void setdim(void);
private:
  std::vector < std::vector <int> > thetable;
}

我想用函数setdim()设置thetable的维度.

void theclass::setdim(void){
  this->thetable.assign(1000,std::vector <int> (2000));
}

编译这个程序没问题,但是当我执行它时,我遇到了分段错误.

对我来说奇怪的是,这段代码(见下)正是我想要的,除了它不使用我的类的私有成员变量:

std::vector < std::vector < int > > thetable;
thetable.assign(1000,std::vector <int> (2000));

便说一句,如果thetable是一维向量,我也没有问题.在课堂里 :

std::vector < int > thetable;

如果在setdim中:

this->thetable.assign(1000,2);

所以我的问题是:为什么在thetable和this-> 2D矢量的表格之间存在“分配”这样的差异?我该怎么办才能做我想做的事?

谢谢您的帮助,

最好的祝福,

– @H_618_38@若弗鲁瓦

解决方法

因为它适用于本地而不是你的类变量,我的通灵调试功能告诉我你在Null或无效的类指针/实例上调用setdim.

大佬总结

以上是大佬教程为你收集整理的c – 向量动态内存分配的私有成员向量全部内容,希望文章能够帮你解决c – 向量动态内存分配的私有成员向量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。