动态分配多维数组
2013-11-25 21:30
288 查看
感悟:malloc动态分配多维数组(实例)
(2012-02-26 22:01:26)转载▼
标签:malloc动态分配c语言 | 分类: c的感想 |
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void main(void)
{
int i ;
char (*p)[12] ; //[5][12]
p = malloc(5 * sizeof(char ) * 12); //申请5行的地址空间
for(i = 0 ; i < 5 ; i++)
{
strcpy(*(p + i), "hello");
}
for(i = 0 ; i < 5 ;i++)
{
printf("%s\n" , *(p + i));
}
free(p);
}
程序2:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void main(void)
{
int i;
int j ;
int num = 0 ;
char **p ;//[5][12]
p =(char **) malloc( 5 * sizeof(char *) );
for(i = 0 ; i < 5 ; i++)
{
p[i] = malloc(12 * sizeof(char));
}
for(j = 0 ; j < 5 ; j++)
{
num = 0 ;
for(i = 0 ; i < 12 ; i++)
{
p[j][i] = 'a' + num;
num++ ;
}
}
for(j = 0 ; j < 5 ; j++)
{
for(i = 0 ; i < 12 ; i++)
{
printf("%c" , p[j][i]);
}
printf("\n");
}
for(i = 0 ; i < 5 ; i++)
{
free(p[i]);
}
free(p);
}
程序3:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
void main(void)
{
char ***pStr;
int i , j , k ;
// 自己分配一个三维的[3][4][5]
pStr = (char ***)malloc(3 * sizeof(char **)); //第一维
//分配二维的
for(i = 0 ; i < 3 ; i++)
{
*(pStr + i) = malloc(4 * sizeof(char *));
}
//分配三维
for(i = 0 ; i < 3 ; i++)
{
for(j = 0 ; j < 4 ; j++)
{
*(*(pStr + i) + j) = malloc(5 * sizeof(char));
}
}
//使用分配的内存
for(i = 0 ; i < 3 ; i++)
{
for(j = 0 ; j < 4 ; j++)
{
for(k = 0 ; k < 5 ; k++)
{
pStr[i][j][k] = 'a' ;
printf("%c" , pStr[i][j][k]);
}
printf("\n");
}
}
//释放第三维的内存
for(i = 0 ; i < 3 ; i++)
{
for(j = 0 ; j < 4 ;j++)
{
free((pStr[i][j]));
}
}
//释放第二维的内存
for(i = 0 ; i < 3 ; i++)
{
free(pStr[i]);
}
//释放第一维的内存
free(pStr);
}
相关文章推荐
- C++:多维数组的动态分配(new)和释放(delete)
- 多维数组的动态分配(二三维)
- C++:多维数组的动态分配(new)和释放(delete)
- C++库研究笔记—— [真正正确?]多维数组动态分配正确方式?(之一)
- C++:多维数组的动态分配(new)和释放(delete)
- c语言中内存的动态分配与释放(多维动态数组构建)
- 动态分配多维数组
- c/c++ 多维数组的动态分配
- C++:多维数组的动态分配(new)和释放(delete)
- C语言中内存的动态分配与释放(多维动态数组构建)
- 多维数组的动态分配
- c语言中内存的动态分配与释放(多维动态数组构建)
- c语言中内存的动态分配与释放(多维动态数组构建)
- c语言中内存的动态分配与释放(多维动态数组构建)
- c语言中内存的动态分配与释放(多维动态数组构建)
- 动态分配多维数组
- C++:多维数组的动态分配(new)和释放(delete)
- 二维数组的动态分配,可扩充成多维数组
- 纯c语言实现动态分配多维数组的方法
- 动态分配多维数组和释放其内存