一个很弱的问题!关出char**!
有些时候看到c的朋友用char**,但不好细问!
写了一点小code
目的:在此处我是想在函数中分配内存,在函数的外边释放(调用者释放)
1、char**能将函数中分配的内存传递出来!这个内存是在堆还是在栈上分配的?
2、用c的朋友一般是用这种方法解决类似的问题的吗?(谁调用谁释放)
3、下面的code有bug吗?^_^
//***********CODE 1 ******************
int funtion(char **p1)
{
char *p2="123456789";
if ( (*p1=(char *)calloc(1, 100)) == NULL ) {
cerr << "calloc is error!" << endl;
return 0;
}
memset(*p1,0,100);
memcpy(*p1,p2,9);
return 0;
}
int main(int argc,char *argv[])
{
char *content = NULL;
for (int i=0;i<100000;i++)
{
if (funtion(&content)<0){
cerr << "funton() is error!" << endl;
exit(-1);
}
if (content!=NULL) {
cout << "free content!" << content << endl;
free(content); content = NULL;
}
}
return 0;
}
//**********先谢谢大家!^_^