Ç - 不相容类型分配时输入的内容从类型“字符*”
问题描述:
我要分配从标准输入一个struct值(即可以是最多50个字符)“的char [LENGTH]”,但正在错误:Ç - 不相容类型分配时输入的内容从类型“字符*”
Incompatible types when assigning to type 'char[50]' from type 'char *'
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 50
struct msgbuf {
char mtext[MAX_LEN];
};
int main (int argc, char *argv)
{
struct msgbuf m;
char in[MAX_LEN];
scanf ("%s", in);
m.mtext = in;
}
答
数组没有复制赋值运算符。您必须逐个元素复制数组。您可以使用标头<string.h>
中声明的标准功能strcpy
来复制字符串。例如
#include <string.h>
//...
strcpy(m.mtext, in);
你为什么要将'in'强制转换为'char *'? – mstbaum 2015-03-31 19:00:16
@mstbaum既然没有什么区别,我把它编辑出来 – BDillan 2015-03-31 19:01:44
你不能指定一个数组到另一个。 – HuStmpHrrr 2015-03-31 19:02:25