|
发表于 2020-2-25 19:42:28
|
显示全部楼层
2处打印的地址都不一样,肯定申请失败,这是明显的。
- #include <iostream>
- using namespace std;
- void GetMem(char** p,int num) // 形参应该用指向指针的指针才对吧
- {
- *p = new char[num]; // 申请内存,返回的是地址, 把这个地址赋值给指针p
- cout<<"p在内存中的地址:"<<p<<endl;
- }
- int main()
- {
- char* pChar = NULL; // 空指针,指向的是NULL
- cout<<"pChar在内存中的地址:"<<&pChar<<endl; // 打印的是pChar在内存中的地址
- GetMem(&pChar,10); // 获取内存,意思就是用一个地址来填充这个NULL吧,要修改指针的值(也就是一个地址)实参应该传指针的地址,而形参应该用指向指针的指针才对吧,
- if(pChar != NULL)
- {
- cout<<"内存申请成功!"<<endl;
- delete[] pChar;
- }
- else
- {
- cout<<"内存申请失败!"<<endl;
- }
- return 0;
- }
复制代码 |
评分
-
查看全部评分
|