【发布时间】:2018-04-25 20:30:30
【问题描述】:
我目前正在阅读一些用于数据包发送的源代码。对于下面的伪代码,对于“packet->packet2 = (char*) data”这一行,它实际上是什么意思?我可以理解为将可变数据中的字符数据类型存储到packet2中,它也被定义为字符数据类型?
struct Node1
{
char packet1;
int num1;
}
struct Node2
{
char *packet2;
int num2;
}
int main(void)
{
struct Node1 *data;
struct Node1 var1;
struct Node2 *packet;
struct node2 var2;
data = &var1;
packet = &var2;
packet->packet2 = (char*) data;
}
【问题讨论】:
-
这不会编译。修复它。
-
其实
packet变量中没有packet2字段因为是Node1类型 -
即使编译了,也是完全错误的。您不能将指针放入
char。 -
我混合了 Node1 和 Node2 变量,但我已经按照上面的方法修复了它。
-
你还没有为
packet分配内存
标签: c pointers struct embedded