首页 > 解决方案 > 无法通过 int 在 char [size] 上设置大小

问题描述

初始化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 窗体应用程序制作音板系统。

标签: c++winformsc++-cliconstants

解决方案


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

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

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


推荐阅读