指针数组的释放问题
#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是出错,为什么啊?