C++对字符指针的分配内存的问题。
我写了一个类,类成员中有private:char**address;在构造函数中写了初始化:address=newchar*[num];for(inti=0;i<num;...
我写了一个类,类成员中有private:char **address; 在构造函数中写了初始化:address=new char* [num];for(int i=0;i<num;i++){*(address+i)=new char[num];}
但是在成员函数在使用address时,一跳出函数后,address中所有赋值就不见了。。。求解啊。。。。。 展开
但是在成员函数在使用address时,一跳出函数后,address中所有赋值就不见了。。。求解啊。。。。。 展开
2个回答
展开全部
从上面的代码看,仅仅是分配了空间,还没有给字符串赋值。既然用的是 char * 字符串,应该用 strcpy() 进行赋值。
另:在 C++ 中,使用字符串,建议用 std::string。
另:在 C++ 中,使用字符串,建议用 std::string。
追问
我有附值的,但是是在成员函数中进行的,一跳出成员函数addrees就没有了,甚至对address[1]附值后address[0]就没有了
追答
赋值必须用 strcpy(),千万不能直接给指针赋值,你一赋值 address[count]= ...,那么前面的内存分配 *(address+i)=new char[num]; 就丢了,造成内存泄露。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询