C++ 无法通过int设置字符[size]的大小
初始化常量int sz=copy_wav_v;设置我的姓名大小_wav[sz] 但这是错误的 错误C2057:应为常量表达式C++ 无法通过int设置字符[size]的大小,c++,winforms,c++-cli,constants,C++,Winforms,C++ Cli,Constants,初始化常量int sz=copy_wav_v;设置我的姓名大小_wav[sz] 但这是错误的 错误C2057:应为常量表达式 我目前正在使用Windows窗体应用程序制作音板系统。您正在声明一个静态阵列。静态声明的数组在编译时分配内存,其大小是固定的,即以后不能更改 sz值是在运行时定义的 您需要使用动态数组。例如,看一下std::vector问题是什么?CopySaveWaveV可能没有赋值,保持尝试和错误-这是错误的学习C++的方式。改为阅读。你的问题缺少一个问题。这里的错误不足以告诉我们问
我目前正在使用Windows窗体应用程序制作音板系统。您正在声明一个静态阵列。静态声明的数组在编译时分配内存,其大小是固定的,即以后不能更改 sz值是在运行时定义的
您需要使用动态数组。例如,看一下std::vector问题是什么?CopySaveWaveV可能没有赋值,保持尝试和错误-这是错误的学习C++的方式。改为阅读。你的问题缺少一个问题。这里的错误不足以告诉我们问题是什么。首先,你使用的语言不是C++,而是C++ + CLI,这是一种不同的语言。除此之外,我强烈建议不要使用C++/CLI构建Windows窗体应用程序。如果要构建Windows窗体应用程序,请使用C或任何其他合适的.NET语言。C++/CLI不用于构建Windows窗体应用程序。它用于编写介于.NET和本机代码之间的互操作层。特别是如果你对C++和.NET没有很多经验,C++ + CLI绝对不是你应该使用的…编译器想要的是编译时常量表达式,而不是一个只有在执行时才知道的值的const变量。
//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