首页 > 解决方案 > 我班级的一个功能导致我的程序崩溃

问题描述

我正在做一个 simple_vector 类,它只能包含双精度数,使用动态数组。不知何故,我的功能推送正在使我的程序崩溃,我不知道发生了什么。当我调用它时,控制台会静止一会儿,然后立即结束主控。

我不知道...

void simple_vector::push(double value){
if (length == capacity){
    expandCapacity();
}
  array[length++] = value;
}

expandCapacity() 复制数组的容量并复制其内容。

考虑到我正在推动一个空向量,它不应该输入 if。

标签: c++classvectordynamic-arrays

解决方案


您的程序崩溃的行在哪里。

首先,假设 expandCapacity() 使您的程序崩溃。我不知道,因为没有关于 expandCapacity() 函数的信息。所以你应该清楚地问你的问题。

其次,假设 array[length++] 使您的程序崩溃。那么长度值大于你的数组大小。另外,数组从 0 索引开始。所以你声明了 10 个大小的数组,然后你可以访问数组 [0] ~ 数组 [9]。

谢谢。


推荐阅读