struct weapon *p;
p=weapon_2;
为什么weapon_2前面不加地址符&
估计老师手误吧
手误毛线啊,楼上不会别乱说啊。数组名默认就是地址,也是数组第一个元素的地址。p = weapon_2,完全是没有错误的。