GetMemory指针申请空间
void GetMemory(char **p, int num) //**********************?
{
*p = (char*)malloc(num);
}
int main(void)
{
char*str = NULL;
int len =0;
GetMemory(&str, 100);
strcpy(str, "hello");
puts(str);
return 0;
}
//答案说:能够输出HELLO, 但是内存泄露, 怎么解释呢?
*/
GetMemory(char **p, int num)里 *P指向新申请的空间, 而在函数调用的时候*P指向的是str的地址,之后的申请不会改变指向吗?解释。。。。。谢谢
[解决办法]
p才是str的地址
*p相当于就是str
[解决办法]
P指向的是str的地址,*P相当于str,是一个指针,在GetMemory中为这个指针分配了内存空间,不知道你所谓的改变指向是怎么个意思
我只能说这个程序已经正确完成了要表达的意思,只是没有释放为str申请的内存
[解决办法]
而在函数调用的时候*P指向的是str的地址…………
在函数调用的时候P指向的是str的地址
*p就直接是str自己了