关于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的
都没声名
不知你的程序的作用
[解决办法]
2楼 char **tmp = (char**)malloc(1); *tmp = greeting[i]; free(t); //t怎么来的?--没有定义过阿!3楼 char **t = (char**)malloc(1); *tmp = greeting[1]; //temp怎么来的?--也没有定义过阿! free(t);
[解决办法]
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]; 注释掉就可以了
[解决办法]
char **t = (char**)malloc(1); *t = greeting[1]; free(t);
[解决办法]
上面的解释好像有问题
内容
t &p
p &greet[1]
这里p的空间是要释放的,所以free(t)去释放p没问题,只是申请要按13楼改