将字符数组的地址赋值给结构体指针是否可行?
typedef struct {
int ID;
word32 Myports;
stripports gd[256] ;
}Table;
typedef struct {
oldxmd used;
newip ip;
newxmd new;
}stripports;
char buffer1[256];
Table *tableptr = buffer1 ;
tableptr ->ID = 15 ;
tableptr ->Myports= somenumber ;
tableptr ->gd[0].used = somenumber ;
困难的部分是我无法解释为什么 tableptr 会接受一个数组起始地址!我的最佳猜测是上面的代码不正确或不安全。
尽管后来采用了强制转换,但为什么它能够接受一个数组呢?
Table* tableptr = (Table*)buffer1;
Table *tableptr = buffer1 ;
被许多测试中的 Table* tableptr = (Table*)buffer1;
替代。
不进行强制类型转换,struct
指针可以取除了新创建的指向 struct
的地址以外的其他值吗?
我在存储库中有一系列测试,由许多作者撰写,真的很混乱。
Table
比缓冲区大,这似乎很危险。 - jv42