指针数组简单使用

来源:互联网 发布:centos yum 升级gcc 编辑:程序博客网 时间:2024/06/05 05:33
#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");}}

0 0
原创粉丝点击