数组和指针

来源:互联网 发布:linux中expect的用法 编辑:程序博客网 时间:2024/05/21 09:44

1.动态分配一维数组

int *p = (int *)malloc(sizeof(int)*10); //或者int * p = new int[10];

2.动态分配二维数组 2 X 5

int *p = (int *)malloc(sizeof(int)*10);//或者int *p = new int[10];int (* pp)[5] = (int (*)[5])p;

3.动态分配三维数组 12 = 3(面) x 2(行) x 2(列)

int *p = (int *)malloc(sizeof(int)*12);//或者 int *p = new int[12]int (* pp)[2][2] = (int (*)[2][2])p;

考虑下面的指针数组的内存分配问题

a.一维指针数组

1.数组在栈上for (int i = 0; i<10; i++){b[i] = new int;}for (int j = 0; j<10; j++){delete b[j];}  // 2.数组在堆上 int ** p = new int * [10]; // 不能写成 new (int *) [10];for (int i = 0; i<10; i++){b[i] = new int;}for (int j = 0; j<10; j++){delete b[j];}delete []p;//重要

b.二维指针数组

int *b[4][5]; // 10个指针数组,内容为指针。// 1.数组在栈上// 2.数组在堆上int **p = new int * [20];int* (* pp)[5] = (int* (*)[5])p; // 指向二维指针数组的指针


32位下指针永远4字节,指针的类型表明了变量读取的方式。

3 0
原创粉丝点击