#include <stdio.h>
#include <stdlib.h>
void main()
{
int **pp=calloc(3,4);//开辟二维数组,分配指针数组
int i=0;
for(i=0;i<3;i++)
{
pp[i]=malloc(4*sizeof(int));//每个指针分配内存
}
int num=0;
i=0;
int j=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%4d",pp[i][j] =num++);// *(*(pp+i)+j)
// *(pp+i) ==p[i] pp+j ==&pp[j]
}
printf("\n");
}
for(i=0;i<3;i++)
{
free(pp[i]);
}
free(pp);
}
//指针数组
int main5(int argc, char** argv)
{
int a[3][4];
//指针
int *p=(int []){0};//栈上开辟一维数组
int (*px)[4]=(int[][4]){0};//栈上开辟二维数组
int (*py)[3][4]=(int[][3][4]){0};//栈上开辟三维数组
printf("hello world!\n");
return 0;
}
void main6()
{
int (*p)[4]=malloc(sizeof(int)*12);//连续内存.
int i=0;
int j=0;
int num=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%4d",p[i][j] =num++);
}
printf("\n");
}
free(p);
}
void main36()
{
int (*p)[4]=(int [3][4]){0};//自动释放
int i=0;
int j=0;
int num=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%4d",p[i][j] =num++);
}
printf("\n");
}
}
指针数组简单使用
最新推荐文章于 2024-07-14 05:15:00 发布