在C語言中使用malloc
關鍵字,實現動態記憶體分配,使用free
來釋放記憶體。雖然C++可以和C語言混編,但是C++有自己的動態記憶體分配實現方式。
C++中使用new
關鍵字來實現動態記憶體分配,使用delete
關鍵字釋放記憶體。
class Student
{
public:
void mprintf(){
cout << "name:" << name << "--------" << "age:" << age << endl;
}
//覆蓋該類的預設建構函式
Student(char*name, int age){
this->name = name;
this->age = age;
cout << "建構函式" << endl;
}
//解構函式
~Student(){
cout << "解構函式" << endl;
}
void setName(char* name){
this->name = name;
}
char* getName(){
return this->name;
}
private:
char* name;
int age;
};
void func(){
Student* s = new Student("xiaoMing", 15);
s->mprintf();
cout<<s->getName()<<endl;
delete s;
}
void main(){
func();
getchar();
}
複製程式碼
以上在func
方法中使用new
關鍵字為Student
指標分配記憶體,使用delete s
釋放分配的記憶體,可以看到會呼叫構造和解構函式。
陣列型別分配記憶體
void main(){
//分配記憶體
int *p = new int[10];
p[0] = 20;
cout << p[0] << endl;
//釋放記憶體
delete[] p;
getchar();
}
複製程式碼
以上就是為陣列分配動態記憶體,通用是使用new
跟delete
完成分配和釋放,需要注意這兩個關鍵字要配套使用,而釋放記憶體時需要delete[] p
使用這一方式實現。