今天使用结构体的时候遇到一个奇怪的问题,我定义了一个结构体,里边有一个数组,还有两个函数指针例如下面:
typedef struct _MyStruct
{
int arr[2];
int (*Fun1)(_MyStruct* p);
int(*Fun2)(_MyStruct* p);
}MyStruct;
定义了一些全局方法来初始化这个结构,例如:
CreateStruct(MyStruct* pThis)
{
pThis->arr[0] = 0;
pThis->arr[1] = 1;
pThis->Fun1 = ...;
pThis->Fun2 = ...;
}
.....
在类A中定义了MyStruct st_1;
构造函数中调用CreateStruct(&st_1);
但是在使用的时候却出现了指针异常(debug发现内存中的数据乱了,似乎被什么数据搞越界了一样),而当我把这个成员改成指针之后竟然好了。
最后发现了,竟然是没有重新编译的问题,我改了头文件,没有clean,直接make,omg。
程序员应该坚决避免的十种编程坏毛病:http://www.linuxdiyf.com/linux/15683.html
老程序员推荐的10个编程策略:http://www.linuxdiyf.com/linux/15641.html
成为专业程序员的6个技巧:http://www.linuxdiyf.com/linux/15352.html
程序员应该避免的5种代码注释:http://www.linuxdiyf.com/linux/14595.html
程序员找不到开发工作的6大原因:http://www.linuxdiyf.com/linux/14197.html