c++ 定义字符数组的时候出错

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
	const char a[] = "Hello", b[] = "World!";
	const int size = strlen(a) + strlen(" ") + strlen(b) + 1;
	char c[size];
	return 0;
}

char c[size]报错为表达式的计算结果不是常数。

我想知道怎么修改这段代码可以定义字符数组c,还有size 不是已经定义为常量了吗,为什么不能拿来做数组的长度呢?

定义数组,数组的大小或表达式结果一定要是确定的才行

和你的编译器有关系的,题主可以试试别的编译器环境

char *c=new char[size];

用完记得delete c;