首页 > 试题广场 >

分析该题目后,运行该程序会出现什么样的结果? #includ

[问答题]
分析该题目后,运行该程序会出现什么样的结果?
#include "cstdlib"  
#include"iostream" 
using namespace std;  
void GetMemory(char* p)  
{  
    p = (char*)malloc(100);  
}  
void Test1(void)  
{  
    char* str = NULL;  
    GetMemory(str);  
    strcpy(str,"helloword");  
    printf(str);  
}

  1. 指针报错,在main中的str指针仍然为NULL,GetMemory函数中malloc返回的指针丢了。
  2. 内存泄漏,malloc的100个字节无法回收利用
发表于 2019-12-23 20:58:06 回复(0)
应该传char**
发表于 2022-10-02 14:01:12 回复(0)
void GetMemory(char** p)  
{  
	(*p) = (char*)malloc(100);  
}  
void Test1(void)  
{  
	char* str = NULL;  
	GetMemory(&str);  
	strcpy(str,"helloword");  
	printf("%s\n",str);
	free(str);
}

void GetMemory2(char*& p)  

{  

    p = (char*)malloc(100);  

} 

void Test1(void)  

{  

    char* str = NULL;  

    GetMemory2(str);  

    strcpy(str,"helloword");  

    printf("%s\n",str);

    free(str);

}


编辑于 2020-07-24 10:13:23 回复(0)
段错误
发表于 2019-12-30 16:40:56 回复(0)