任务中不兼容的类型c

use*_*101 2 c arrays copying incompatibletypeerror

我在头文件中定义了以下结构,

struct nl_packet {
      int seq;
      FRAMETYPE type;
      CnetAddr dest;
      CnetAddr src;
      uint32_t checksum;
      size_t length;
      char data[NL_MAXDATA];
    };


struct seq_Info  {

   int seqNum;
   size_t length;
   char data[NL_MAXDATA];

};

struct msg_Received {

   CnetAddr src;
   struct seq_Info seqInfo[BUFSIZ];
   int lastReceived;

};
Run Code Online (Sandbox Code Playgroud)

然后在另一个文件中,我有以下赋值,"赋值错误中的不兼容类型",

msgRec[i].seqInfo[j].data = packet.data;
Run Code Online (Sandbox Code Playgroud)

我在同一个方法中有其他类似的声明,但它们工作得非常好,

msgRec[i].seqInfo[j].seqNum = packet.seq;
msgRec[i].seqInfo[j].length = packet.length;
Run Code Online (Sandbox Code Playgroud)

即使两者都有,nl_packet struct和seq_Info结构中的数据字段具有相同的类型,那么这个错误会出现吗?

提前致谢

Dar*_*usz 5

您正在分配数组.你不能这样做.您必须复制数组内容.你可以这样做:

memcpy(msgRec[i].seqInfo[j].data, packet.data, sizeof(char)*NL_MAXDATA);

  • 如果有人这样做,他们应该得到他们会遇到的问题!;) (3认同)