本文介绍了前pression必须有一个恒定值误差C ++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I have the following code:

vector<vector<vec2>> vinciP;
    int myLines = -1;
    myLines = drawPolyLineFile("vinci.dat", vinciP);
    if (myLines > -1)
    {
        cout << "\n\nSUCCESS";
        vec2 vPoints[myLines];
        for (int i = 0; i < NumPoints; ++i)
        {
            vPoints[i] = vinciP[0][i];
        }
    }

I'm getting an error on the line 'vec2 vPoints[myLines];' that says expressions must have a constant value. I don't understand why I'm getting this error, any help?

Is it because myLines could be negative? idk.

解决方案
vec2 vPoints[myLines];

Since myLines is not a const expression ((which means, it is not known at compile-time), so the above code declares a variable length array which is not allowed in C++. Only C99 has this feature. Your compiler might have this as an extension (but that is not Standard C++).

The solution to such commom problem is : use std::vector<T> as:

std::vector<vec2> vPoints(myLines);

It should work now.

这篇关于前pression必须有一个恒定值误差C ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-02 01:02