C语言指针的内存申请和释放
malloc 申请内存
free 释放内存
int* i;
i = (int*)malloc(sizeof(int));
*i = 0;
free(i);
i = nullptr;
C语言和C++的区别,在于C++ new的时候,申请内存的同时也会调用构造函数
delete 会调用析构函数和释放内存
NULL 和nullptr的区别
C++11提供了nullptr来避免这种情况的发生。所以建议指针的置空都用nullptr
void Print(int args)
{
cout << "args 1" << endl;
}
void Print(int* args)
{
cout << "args 2" << endl;
}
int main()
{
Print(NULL);//调用Print(int args)
Print(nullptr);//Print(int* args)
system("pause");
return 0;
}