一、一維動態數組的建立
1.1 malloc
數組的建立:
int * p = (int *)malloc(sizeof(int)*n);
數組的刪除:
free(p);
1.2 new
數組的建立:
int * p = new int[n];
數組的刪除:
delete [] p;
二、二維動態數組的建立
2.1 malloc
數組的建立:
int ** p = (int **)malloc(sizeof(int *)* n);
for (int i =0; i<n; i++)
{
p[i] = (int *)malloc(sizeof(int)*n);
}
數組的刪除:
for (int i=0; i<n; i++)
{
free(p[i]);
}
free(p);
2.2 new
數組的建立:
int ** p = new int *[n];
for (int i =0; i<n; i++)
{
p[i] = new int[n];
}
數組的刪除:
for (int i =0; i<n; i++)
{
delete [] p[i];
}
delete p;
三、動態指針的建立
3.1 malloc
int * p = (int *)malloc(sizeof(int ));
free(p);
3.2 new
int * p = new int;
delete int;
四、指針的指針的建立
4.1 malloc
int ** p = (int **)malloc(sizeof(int *));
free(p);
4.2 new
int ** p = new int *;
五、其他的說明
malloc分配的內存,在C中,將內存分配在堆中;在C++中,分配在自由存儲區,由free結束使命。
new只能在C++中使用,內存分配在堆中。用delete刪除指針。