指针数组的释放问题

hunanchang 2007-02-12 05:09:17
#include <string.h>
#include <stdio.h>
int main(void)
{
char input[16] = "abc,d,addc,dfjk";
char output[32];
char *p;
int k;
int t;
int i=1;
int number=0;
int j;
for(j=0;j<16;j++)
{
if (input[j]==',')
number++;
}
char**buff = new char*[number];
buff[0] =new char[16];


p = strtok(input, ",");
if (p)
{

strcpy(buff[0],p);
strcat(buff[0],",");
printf("%s\n", buff[0]);
}


while (p)
{

p = strtok(NULL, ",");
if (p)
{
buff[i]=new char[16];
strcpy(buff[i],p);
strcat(buff[i],",");
printf("%s\n", buff[i]);
i++;
}
}
for (t=1;t<=number;t++)
{
strcat(buff[0],buff[t]);
}

strcpy(output,buff[0]);
printf("%s\n", output);
for(k=0;k<number;k++)
{
delete []buff[k];
}
delete []buff;

return 0;
}

释放buff是出错,为什么啊?
...全文
323 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunanchang 2007-02-12
  • 打赏
  • 举报
回复
问题已解决
xyjchinese 2007-02-12
  • 打赏
  • 举报
回复
直接delete []buff;就可以了
taodm 2007-02-12
  • 打赏
  • 举报
回复
char**buff = new char*[number];后 delete []buff;前各加一个printf("%p", buff);

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧