如何通过强制转换从字符串中提取特定范围的字符到数组类型——它不能做什么?

how to extract specific range of characters from string with casting to array type-- What it can't be done?

我有这个代码

char *c="hello";
char *x=malloc(sizeof(char)*5+1);
memcpy(x,(char[2])c,sizeof("hello")+1);
x[5]='[=10=]';
printf("%s\n",x);

它给出了转换指定数组类型的错误。这是为什么?这个错误背后的原因是什么。这是否意味着 I can't cast like with array type meaning:I can cast to pointer like (char *) but I can't cast to array type like (char[2]) or (char[]) 我遗漏了什么?

我需要在我的代码中做些什么来解决在

处转换指定数组类型错误的错误
 10 |         memcpy(x,(char[2])c,sizeof("hello")+1);

数组没有赋值运算符。例如你可能不会写

char *c="hello";

char s[6];

s = c;

结果这样的选角

( char[6] )c

不允许。