C - 从类型'char *'分配类型'char [LENGTH]'时不兼容的类型

时间:2015-03-31 18:58:04

标签: c

我想从标准输入中分配一个struct值(可以是最多50个字符),但我收到错误:

  

从类型'char'分配类型'char [50]'时不兼容的类型   *'

#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;

}

1 个答案:

答案 0 :(得分:1)

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

#include <string.h>

//...

strcpy( m.mtext, in );