关于c++报错:“表达式必须含有常量值” 的原因和解决办法
在用vs2019运行一段代码时显示这样的错误:
原因及解决办法:
因为[ndiffficulty+1]不是一个常数,需要运行时才能确定分配内存的大小。
最新的C++标准是允许char cstr[n]中n不是常量,但不推荐这样用,所以,如果当分配内存大小需要在运行时才能确定时,一般使用动态分配内存。
例如:
将上诉代码修改为:
char* cstr=new char[nDifficulty + 1];
并在数组使用完毕后释放内存:
delete[]cstr; cstr=NULL;
运行就没有报错了