首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

GetMemory指针申请空间,该如何解决

2012-04-07 
GetMemory指针申请空间void GetMemory(char **p, int num)//**********************?{*p (char*)malloc(

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自己了

热点排行