分配空间的字符串数组,释放时出有关问题,请指点
分配空间的字符串数组,释放时出问题,请指点
char * p_recvmsg; //动态分配
p_recvmsg=new char [50];
memset(p_recvmsg,0x00,50);//赋值为空
.......
char *pc_temp=(char *)malloc(120);
memset(pc_temp,0x00,120);
long i_len = strlen(p_recvmsg);
char pc_[10];
memset(pc_,0x00,10);
for(long i_lop=0;i_lop <i_len;i_lop++)
{
pc_[0]=p_recvmsg[i_lop];
if(p_recvmsg[i_lop]==char(13))
{
p_list-> AddString(pc_temp);
memset(pc_temp,0x00,120);
}
else
{
strcat(pc_temp,pc_);
}//进行这些操作后,
delete []pc_temp;//没问题
delete []p_recvmsg;//会出现内存泄露问题
请指点一二!!!!
------解决方案--------------------
靠用C malloc分配的干什么用delete啊,用free释放……
------解决方案--------------------
free pc_temp;
------解决方案--------------------
free(pc_temp);
free是函数
void free(void *);
------解决方案--------------------
是内存泄露还是程序崩溃啊?你不说是啥问题,咋帮你。
char * p_recvmsg; //动态分配
p_recvmsg=new char [50];
memset(p_recvmsg,0x00,50);//赋值为空
.......
char *pc_temp=(char *)malloc(120);
memset(pc_temp,0x00,120);
long i_len = strlen(p_recvmsg);
char pc_[10];
memset(pc_,0x00,10);
for(long i_lop=0;i_lop <i_len;i_lop++)
{
pc_[0]=p_recvmsg[i_lop];
if(p_recvmsg[i_lop]==char(13))
{
p_list-> AddString(pc_temp);
memset(pc_temp,0x00,120);
}
else
{
strcat(pc_temp,pc_);
}//进行这些操作后,
delete []pc_temp;//没问题
delete []p_recvmsg;//会出现内存泄露问题
请指点一二!!!!
------解决方案--------------------
靠用C malloc分配的干什么用delete啊,用free释放……
------解决方案--------------------
free pc_temp;
------解决方案--------------------
free(pc_temp);
free是函数
void free(void *);
------解决方案--------------------
是内存泄露还是程序崩溃啊?你不说是啥问题,咋帮你。