C语言中的malloc,free函数
malloc函数
extern void *malloc(unsigned int num_bytes);
返回:void类型的指针
功能:向系统申请分配长度为num_bytes长度的内存块,分配成功则返回一个指向该内存块的指针,分配失败则返回空指针NULL
缺点:
1.其返回的指针不是指定类型的指针,需要进行强制转换
Maker* m = (Maker*)malloc(sizeof(Maker));
2.在C++里,不会调用类的构造函数,同理free也不会调用类的析构函数
class Maker
{
public:
Maker()
{
cout << "构造函数" << endl;
}
Maker(int a)
{
cout << "有参构造函数" << endl;
}
~Maker()
{
cout << "析构函数" << endl;
}
};
void test01()
{
//用c语言申请堆区空间,不会调用构造函数和析构函数
Maker* m = (Maker*)malloc(sizeof(Maker));
//对象释放时不会调用析构函数
free(m);
}
free函数
void free(void *Fi