Qt/C++:Access violation reading locaton 0x0000000000000005

Qt/C++:Access violation reading locaton 0x0000000000000005_第1张图片
  遇到这种问题的原因有很多,如果项目中使用了指针,大概率访问了已经释放掉的内存(或者是根本不存在的内存)。回忆一下自己之前都做了哪些改动,然后对可疑的地方单步调试,总能找出问题所在的。
  比如,我这个项目中,在构造函数中,对一堆指针赋初值nullptr,但是漏掉了其中一个对象指针roiSelection,然后在析构函数中有安全性判定——

	if (parameter != nullptr) delete parameter;
	if (roiSelection != nullptr) delete roiSelection;
	if (ica != nullptr) delete ica;
	if (results != nullptr) delete results;
	if (videoData != nullptr) delete videoData;

  由于roiSelection并没有被初始化,因此,VS编译器给了一个随机值(我这里是0x0000000000000005),因此不等于nullptr,但是这个指针实际上并没有被分配内存,对没有分配堆存的指针执行delete,必然会抛出内存访问异常。

你可能感兴趣的:(C/C++,Qt)