不能将char [size]上的大小设置为int

时间:2019-04-07 14:49:40

标签: c++ winforms c++-cli const

初始化const int sz = copy_wav_v;,将我的大小设置为name_wav[sz] 但其保持错误

error C2057: expected constant expression

//some code
                    if(char_chck >= 7 && character != 13)
                    {
                        copy_wav[copy_wav_v] = Readfile[i];
                        copy_wav_v++;
                    //  wav_n->Text=System::Convert::ToString(copy_wav_v);

                    }
                    if(character == 13)
                    {

                    //  const int sz = System::Convert::ToInt32(wav_n->Text);
                        const int sz = copy_wav_v;
                        char name_wav[sz]; //error starts here
                        for(int j = 0; j<=copy_wav_v;j++)
                        {
                            name_wav[j] = copy_wav[j];
                            if(j==copy_wav_v)
                            {
                                wav_name->Text= gcnew String(name_wav);
                            }
                        }
                    }
                    //some code

我目前正在使用Windows窗体应用程序制作Soundboard系统。

1 个答案:

答案 0 :(得分:2)

您要声明一个静态数组。静态声明的数组在编译时分配了内存,其大小是固定的,即以后不能更改。

您的sz值是在运行时定义的。

您需要使用动态数组。例如。看看std::vector