指针的声明与初始化问题

pair<string,string> w,y;//定义w,y为pair类型
w=make_pair("ruiju","123456789");//为w,y初始化
y=make_pair("xiaoxiao","234567889");
pair<string,string>  *p=0;//声明将指向pair类型的指针并悬垂
pair<string,string>  *q=0;
*p=w;
*q=y;
example.set_wait_list(p);//将指针pushback到vector中
example.set_wait_list(q);

出现的错误如下图:


     即使悬垂时将指针赋值为NULL,仍然无法去除错误,将代码改成如下形式后,运行成功:

pair<string,string> w,y;
w=make_pair("ruiju","123456789");
y=make_pair("xiaoxiao","234567889");
pair<string,string>  *p=&w;
pair<string,string>  *q=&y;
example.set_wait_list(p);
example.set_wait_list(q);

   虽然,原因并不知道,但是,以后尽量避免指针悬垂。

PS:好久没敲代码了,明显感觉生疏了,希望尽快看完C++Primer!!!

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章