GCC,调用带不定参数的函数并传递带构造函数的对象时崩溃
#include <stdio.h>
#include <stdlib.h>
//没有构造函数
struct MYDATA1
{
int a;
int b;
};
//有构造函数
struct MYDATA
{
int a;
int b;
MYDATA(){};
};
//无不定参数
int func1(int size, MYDATA data){return 0;};
//有不定参数
int func(int size, ...){return 0;};
int main()
{
MYDATA1 data1;
MYDATA data;
func1(0,data);
system("PAUSE");//正常
func(0,data1);
system("PAUSE"); //正常
//这里崩溃,调试时弹出错误窗口;
//program received signal SIGSEGV, Segmentation fault.
func(0,data); //调用带省略参数的函数,传递带构造函数的结构对象。
system("PAUSE");
return 0;
}
上述代码用VC6编译,则执行无问题,用GCC编译,执行则崩溃。
项目特性要求使用这些代码,就是说,要把data对象整体传递,而不是传递地址。请高手帮忙解决,非常感谢!