【问题标题】:Array Declaration Error: "Stack around the variable '...' was corrupted"数组声明错误:“变量'...'周围的堆栈已损坏”
【发布时间】:2021-08-20 21:46:49
【问题描述】:

我正在尝试声明我的对象是一个数组,但我似乎收到了以下编译错误消息:

围绕变量“rainFall”的堆栈已损坏。

我可以输入我的数组中的内容,但是一旦我完成输入,命令提示符就会关闭,然后给我错误。

const int num = 12;

class Stats
{
private:
    double stats[num];
public:
    Stats();
    void setValue(double stats[num], int);
};

//separate file

void Stats::setValue(double stats[num], int i)
{
    for (i = 0; i < num; i++)
    {
        cout << "What was the rain fall for month # " << i + 1 << " ?" 
        << endl;
        cin >> stats[i];
    }
    if (stats[i] < 0)
    {
        stats[i] = 0;
    }
}

//separate file

int main()
{
    double rainFall[num];

    Stats rainStats[num];

    rainStats[num].setValue(rainFall, num);

    return 0;
}

【问题讨论】:

标签: c++ arrays


【解决方案1】:
void Stats::setValue(double stats[num], int num)
{
    for (int i = 0; i < num; i++)
    {
        cout << "What was the rain fall for month # " << i + 1 << " ?" << endl;
        cin >> stats[i];

        if (stats[i] < 0)
        {
            stats[i] = 0;
        }   
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2012-11-08
    • 2019-09-04
    相关资源
    最近更新 更多