c++ - 无法通过 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 窗体应用程序制作音板系统。
解决方案
您正在声明一个静态数组。静态声明的数组在编译时分配内存,并且它们的大小是固定的,即以后不能更改。
您的sz
值是在运行时定义的。
您需要使用动态数组。例如看看std::vector
推荐阅读
- python - 使用套接字 (PYTHON) 发送获取请求时出现问题
- spring - 编译期间 Spring Boot Build Native 错误
- python - 试图将文本转换为二进制转换器 - 不工作
- c# - 尝试从 Firebase 数据库 c# 的类中加载字典时出现 JSON 异常
- python - 使用列表推导对数据框进行 re.sub()
- python - Pandas:无法正确合并数据
- html - Html5 和 css3 中的 flex 导航栏
- java - 如果保存操作返回null,如何在带有事务注释的函数中进行回滚?
- python - 广告一个名为 [obsolete] 的新列。该列应标记为 TRUE,表示项目已过期和 FALSE,否则
- c# - C# - 如何将列表属性添加到类并添加属性值