我想从标准输入中分配一个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;
}
答案 0 :(得分:1)
数组没有复制赋值运算符。您必须逐个元素地复制数组。您可以使用标头strcpy
中声明的标准函数<string.h>
来复制字符串。例如
#include <string.h>
//...
strcpy( m.mtext, in );