今天写程序时遇到的一个问题,求大神解答。
- C/C++ code
int main(){ ... Eventi_Log_Table_Record log; nc_com_pro buf; ... nc_log_package(&log, &buf); ... return 0;}void nc_log_package(Eventi_Log_Table_Record *t, nc_com_pro *buf){ [color=#FF0000]buf->nc_rec = t->evtId;[/color] ...}请问为什么当程序执行到buf->nc_rec = t->evtId;时会发生段错误?
其中nc_rec 和 evtId都是U32类型
#define unsigned long U32
不可以直接赋值的么?
用memcpy可以解决问题,但是还是不知道为什么不能够直接赋值,两个变量的类型都一样的。
求大神解答,先谢谢啦。
[解决办法]
把Eventi_Log_Table_Record和nc_com_pro两个结构体的定义发上来