unhandled exception in 3-1.exe:0xc0000005:access violation

#include<iostream>
using namespace std;
struct complex
{
int real;
int im;
complex(){real=0;im=0;}
complex(int realnew,int imnew):real(realnew),im(imnew){};
~complex(){}
};

complex *caad(complex *num1,complex *num2)
{
complex *num;
num->real=num1->real+num2->real; //调试到这一步的时候出问题了……
num->im=num1->im+num2->im;
return num;
}

complex *cmult(complex *num1,complex *num2)
{
complex *num;
num->real=num1->real*num2->real-num1->im*num2->im;
num->im=num1->real*num2->im+num1->im*num2->real;
return num;
}

int main()
{
complex num1,num2,*sum,*product;
cout<<"请依次输入两个复数的实部虚部:"<<endl;
cin>>num1.real>>num1.im>>num2.real>>num2.im;
sum=caad(&num1,&num2);
product=cmult(&num1,&num2);
cout<<"和为:"<<sum->real<<"+"<<sum->im<<"i"<<endl;
cout<<"积为:"<<product->real<<"+"<<product->im<<"i"<<endl;
return 0;
}

complex *num;
--》complex *num = new complex();追问

跪求原因~大神…

跪求原因~大神…

跪求原因~大神…

追答

指针变量要分配内存后才可使用。

温馨提示:内容为网友见解,仅供参考
无其他回答