#include<iostream>
#include<vector>
using namespace std;
//malloc和free需要成对出现
//程序崩溃
void GetMemory(char* p)
{
p = (char*)malloc(100);
}
int main()
{
char* p = nullptr;
GetMemory(p);
//p = (char*)malloc(100);
strcpy(p,"hello world");
cout << p << endl;
system("pause");
}
1//这里面把地址给修改了,要么加上引用,要么返回修改的地址
void GetMemory(char*& p)
{
p = (char*)malloc(100);
}
或
char* GetMemory(char* p)
{
p = (char*)malloc(100);
return p;
}
2还有在主程序中加上
free(p);
p = nullptr;
之前在程序中都收修改地址指向的值,这一块没注意到。