C,将字符分配给字符数组:无效转换


char buffA[100];
char plan[3][1];
char value[5];
strcpy(value, &buffA[2]);
strcat(value, &buffA[3]);
plan[0][0] = value;

error: invalid conversion from 'char*' to 'char'

如何正确完成此操作? 我也尝试了char *value但会抛出精度损失警告

plan[0][0]是一个char,但value是一个5 char的数组。不能将char数组分配给单个char

使用 strncpymemcpy 函数复制char数组或尝试此操作:

// this will only copy 1 character, not whole array.
plan[0][0] = value[0]; 

如上所述,您正在尝试将数组复制到单个字符,但我认为这不是您唯一的问题,我不知道你试图实现什么,但除非你确定你的数组中有\0,否则你会在这里有一个缓冲区溢出,即使您确定,我也建议您使用安全功能,例如strncmp和strncat。

如果你愿意,你可以解释你想做什么,我很乐意提供帮助。

祝你好运

最新更新