2015-03-31 29 views
0

我要分配从标准输入一个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; 

} 
+0

你为什么要将'in'强制转换为'char *'? – mstbaum 2015-03-31 19:00:16

+0

@mstbaum既然没有什么区别,我把它编辑出来 – BDillan 2015-03-31 19:01:44

+0

你不能指定一个数组到另一个。 – HuStmpHrrr 2015-03-31 19:02:25

回答

1

数组没有复制赋值运算符。您必须逐个元素复制数组。您可以使用标头<string.h>中声明的标准功能strcpy来复制字符串。例如

#include <string.h> 

//... 

strcpy(m.mtext, in); 
相关问题