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中所有赋值就不见了。。。求解啊。。。。。
展开
 我来答
sdzhuangbo
2013-02-22 · TA获得超过109个赞
知道答主
回答量:67
采纳率:0%
帮助的人:69.8万
展开全部
从上面的代码看,仅仅是分配了空间,还没有给字符串赋值。既然用的是 char * 字符串,应该用 strcpy() 进行赋值。
另:在 C++ 中,使用字符串,建议用 std::string。
追问
我有附值的,但是是在成员函数中进行的,一跳出成员函数addrees就没有了,甚至对address[1]附值后address[0]就没有了
追答
赋值必须用 strcpy(),千万不能直接给指针赋值,你一赋值 address[count]= ...,那么前面的内存分配 *(address+i)=new char[num]; 就丢了,造成内存泄露。
yangb317
2013-02-22
知道答主
回答量:98
采纳率:100%
帮助的人:37.5万
展开全部
请提供你的赋值代码。。。
追问
while(count<num)
{
address[count]=(LPSTR)(LPCTSTR)Rows.GetAt(col_addr);

count++;
}//Rows是一个CString对象;每次的Row在外部已更新
追答
c字符串赋值不能用=,用strcpy试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式