在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使用这一方式实现。