C:
malloc:
void *malloc(size_t size);
1.返回值型別不安全
2.開闢大小由使用者控制,空間浪費或不足
C++:
new:
1.開闢記憶體
2.記憶體初始化
new和malloc的區別:
1.new返回值安全
malloc返回值不安全
2.new還可以初始化
malloc只能開闢記憶體
3.new不需要計算開闢記憶體
malloc需要計算開闢記憶體
4.new開闢失敗拋出異常
malloc開闢失敗,返回NULL
5.new在自由儲存區域
malloc在堆上
C語言一維陣列的開闢與釋放
int* parr = (int*)malloc(sizeof(int)*10);
free(parr);
C++一維陣列的開闢與釋放
int* parr = new int[10];
delete[] parr;
C語言二維陣列的開闢與釋放
int** parr = (int**)malloc(sizeof(int*)*3);
for(int i = 0;i < 3;i++)
{
parr[i] = (int*)malloc(sizeof(int)*4);
}
for(int i = 0;i < 3;i++)
{
free(parr[i]);
}
free(parr);
C++二維陣列的開闢與釋放
int** parr = new int*[3]();
for(int i = 0;i < 3;i++)
{
parr[i] = new int[4];
}
for(int i = 0;i < 3;i++)
{
delete[] parr[i];
}
delete[] parr;