您的位置:首页 > 编程语言

请在下面的代码片段中找出可能有错误或有安全隐患的地方,并写出错误的原因。

2013-07-01 00:12 465 查看
请在下面的代码片段中找出可能有错误或有安全隐患的地方,并写出错误的原因。

struct complex_t

{

int real;

int imag;

};

//若:create(complex_t&* p则 cannot convert from 'struct complex_t *' to'struct complex_t **

int create(complex_t*p,unsigned int n) //指针参数问题,应当传引用create(complex_t * &p, ..

{

p=new complex_t
; //new 与delete的对应

if(p==NULL){

return -1;

}

return 0;

}

int compute()

{

//implement

complex_t* comps;

unsigned int num = 0;

cin>>num;

if(create(comps,num)<0){//localvariable 'comps' used without having been initialized

cerr<<”create comps failed!”<<endl;

return -1;

}

long int sum=0;

unsigned int pos = 0;

cin>>pos;

while(pos<num){

cin>>comps[pos].real>>comps[pos].imag;

cin>>comps[pos+1].real>>comps[pos+1].imag;

sum+=comps[pos].real*comps[pos+1].real+comps[pos].imag*comps[pos+1].imag;

pos+=2; //一次加2,万一pos与num相差为奇数。

}

cout<<”sum is”<<sum<<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐