在堆中创建的空间如下:
malloc(sizeof (int)*4) //如果是整形的空间应该用什么变量来接收呢?
int * pArray = malloc(sizeof(int)*4) //用int * 来接收整形的
malloc(sizeof (int *)*5) //用二级指针int ** 来接收
int** pArray = malloc(sizeof (int *)*5)
pArray
int * | int* | int* | int* | int* |
0x01 | 0x02 | 0x03 | 0x04 | 0x05 |
每一个地址对应一个参数:
空间结构
ox01 | 10 |
0x02 | 20 |
0x03 | 30 |
0x04 | 40 |
0x05 | 50 |
//打印数组
voidprintArray(int ** pArray, int len)
{
for(int i = 0; i<len; i++)
{
print("%d\n",*pArray[i]);
}
}
void test01()
{
int** pArray = malloc(sizeof (int *)*5)
//在栈上创建5个数据
int num1= 10;
int num2= 20;
int num3= 30;
int num4= 40;
int num5= 50;
//建立关系:
pArray[0] = &num1;
pArray[1] = &num2;
pArray[2] = &num3;
pArray[3] = &num4;
pArray[4] = &num5;
//打印数组
printfArray(pArray,5);
//堆中的数据要手动开辟,手动释放
if(pArray! == NULL)
{
free(pArray);
pArray=NULL;
}
}
int main()
{
test01();
}