C中使用malloc 和free ----->库函数,不是语法的一部分
C++中使用new 和delete ----->是运算符(+,-,*….)是语法的一部分
strlen---->函数 :计算字符串长度
sizeof----->运算符 :计算变量类型所占空间的大小。
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
//1.申请单个变量空间
int *p1 = new int;
if(NULL == p1)
{
cout<<"失败"<<endl;
return -1;
}
*p1 = 10;
cout<<"p1 = "<<*p1<<endl;
//申请数组
int *p2 = new int[5];
if(NULL == p2)
{
cout<<"失败"<<endl;
return -1;
}
for(int i = 0;i<5;i++)
{
p2[i]=i;
cout<<"p2["<<i<<"]="<<p2[i]<<endl;
}
//3.申请连续多维数组
int (*p3)[4] = new int[3][4];
if(NULL == p3)
{
cout<<"失败"<<endl;
return -1;
}
int a = 0;
for(int i = 0;i<3;i++)
{
for(int j =0;j<4;j++)
{
p3[i][j]=a++;
printf("p3[%d][%d] = %d\n",i,j,p3[i][j]);
}
}
//4.申请不连续多维数组空间
int **p4 = new int*[3];
for(int i = 0;i<3;i++)
{
p4[i] = new int[4];
}
for(int i = 0;i<3;i++)
{
for(int j =0;j<4;j++)
{
p4[i][j]=a++;
printf("p4[%d][%d] = %d\n",i,j,p4[i][j]);
}
}
for(int i = 0;i<3;i++)
{
delete[] p4[i];
}
delete[]p4;
delete p1;
delete[] p2;
delete[] p3;
return 0;
}