读书人

关于char*的释放

发布时间: 2012-03-07 09:13:51 作者: rapoo

关于char**的释放,高手进
void main()
{
char *greeting[]={ "Hello ",
"Good morning ",
"How are you ",
"How do you do ",
"Good afternoon ",
"Good evening "};

char **tmp = (char**)malloc(1);
*tmp = greeting[i];
free(t);
}

程序报错;
请问怎么释放??

[解决办法]
又是t又是i的
都没声名
不知你的程序的作用
[解决办法]

C/C++ code
2楼   char **tmp   =   (char**)malloc(1);       *tmp   =   greeting[i];   free(t);                     //t怎么来的?--没有定义过阿!3楼   char **t  =   (char**)malloc(1);       *tmp   =   greeting[1];      //temp怎么来的?--也没有定义过阿!  free(t);
[解决办法]
C/C++ code
void       main()   {    char *greeting[]={   "Hello   ",                                   "Good       morning   ",                                     "How       are       you   ",                                     "How       do       you       do   ",                                   "Good       afternoon   ",                                     "Good       evening   "};     char **t  =   (char**)malloc(1);       *tmp   =   greeting[1];   free(t); }
[解决办法]
我觉得是你分配的时候有问题
[解决办法]
把你程序中*t = greeting[1]; 注释掉就可以了
[解决办法]
C/C++ code
  char **t  =   (char**)malloc(1);      *t   =   greeting[1];   free(t);
[解决办法]
上面的解释好像有问题
内容
t &p
p &greet[1]
这里p的空间是要释放的,所以free(t)去释放p没问题,只是申请要按13楼改

读书人网 >C语言

热点推荐