如何通过强制转换从字符串中提取特定范围的字符到数组类型——它不能做什么?
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
不允许。
我有这个代码
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
不允许。