C++二維指針分配內存空間
int **p;
int x;
p=new int*[5];
for (int i=0;i<5;i++)
{
p[i]=new int[4];
}
使用時:
for(int i=0;i<5;i++)
for(int j=0;j<4;j++)
p[i][j]=i+j;
for(int i=0;i<5;i++)
for(int j=0;j<4;j++)
{
std::cout<<p[i][j];
if(j==3)
std::cout<<std::endl;
}
釋放內存時應該注意釋放方法:
for(int i=0;i<5;i++)
delete[] p[i];
delete[] p;
或者:
分配:
tSendCmdContent=(char**)malloc(/*MATRIX_IN_COUNT*/MATRIX_OUT_COUNT*sizeof(char*));
for(int j=0;j <MATRIX_OUT_COUNT/*MATRIX_IN_COUNT*/;j++)
tSendCmdContent[j]=(char*)malloc(MATRIX_CMD_LEN*sizeof(char));
釋放:
for(int j=0;j <MATRIX_OUT_COUNT/*MATRIX_IN_COUNT*/;j++)
{
free(tSendCmdContent[j]);
}
free(tSendCmdContent);