Не могу установить размер на символ [размер] по INT - PullRequest
0 голосов
/ 07 апреля 2019

Инициализируйте 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

В настоящее время я создаю систему Soundboard с приложением Windows Form.

1 Ответ

2 голосов
/ 07 апреля 2019

Вы объявляете статический массив. Статически объявленные массивы выделяются в памяти во время компиляции, и их размер фиксирован, то есть не может быть изменен позже.

Ваше значение sz определяется во время выполнения.

Вам необходимо использовать динамический массив. Например. взгляните на std::vector

...