void GetMem(char* pData){pData = new char[100];}char* pDDD = NULL;GetMem(pDDD);strcpy(pDDD,"hello");运行结果是什么

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 14:39:32
void GetMem(char* pData){pData = new char[100];}char* pDDD = NULL;GetMem(pDDD);strcpy(pDDD,
xRKAW"w$tA'适˺!"jY )~R,?33?(T:ta{=\P@FvA^K5A/9i(&s:}lrr>8:xwqI aa8XYmZZ<4He4rc~J& %\D(e6[t.CBgڳzڀ<;)J`ѴKJ#kFnV0TCr2M+|i՘K]~hʸF:VR9>JPc|&W z7+*~YWIn ed =fs ֊`\_ua0 %>SI#2<-~3#.Qٕ/WrD

void GetMem(char* pData){pData = new char[100];}char* pDDD = NULL;GetMem(pDDD);strcpy(pDDD,"hello");运行结果是什么
void GetMem(char* pData)
{
pData = new char[100];
}
char* pDDD = NULL;
GetMem(pDDD);
strcpy(pDDD,"hello");
运行结果是什么

void GetMem(char* pData){pData = new char[100];}char* pDDD = NULL;GetMem(pDDD);strcpy(pDDD,"hello");运行结果是什么
传入的是值参,
在函数里的修改没有用.
所以pDDD在函数运行完之后还是 NULL
strcpy 这一句会出错.Runtime error.
而函数里new 的那块内存无法释放,会造成内存泄露.
void GetMem(char** ppData)
{
*ppData = new char[100];
}
char* pDDD = NULL;
GetMem(&pDDD);
strcpy(pDDD,"hello");
...
delete []pDDD;
这样还差不多.