文档详情

高级语法内存管理结构联合体.pdf

发布:2025-05-08约1.71万字共14页下载文档
文本预览下载声明

heap空间操作

二级指针对应的heap空间

int**p=int*p[3][int*,int*,int*][[1,2,3,54,5],int*,int*]

1intmain(void)

2{

3//给外层空间malloc申请内存

4int**pmalloc(sizeof(int*)*3);

5if(pNULL)

6{

7printf(mallocerror!\n);

8return-1;

9}

10//给内层指针申请malloc空间

11for(size_ti0;i3;i++)

12{

13p[i]malloc(sizeof(int)*5);

14if(p[i]NULL)

15{

16printf(mallocp[i]error!\n);

17return-1;

18}

19}

20//使用空间--写

21for(size_ti0;i3;i++)

22{

23for(size_tj0;j5;j++)

24{

25p[i][j]i+j;//随意初始化值。

26}

27}

28//使用空间--读

29for(size_ti0;i3;i++)

30{

31for(size_tj0;j5;j++)

32{

33printf(%d,*(*(p+i)+j));

//p[i][j]*(p+i)[j]*(*

(p+i)+j)

34}

35printf(\n);

36}

37

38//free空间时,应该先释放内层空间,再释放外层

39for(size_ti0;i3;i++)

40{

41free(p[i]);

42p[i]NULL;

43}

44

45//释放外层空间

46free(p);

47pNULL;

48

49system(pause);

50returnEXIT_SUCCESS;

51}

以char**p为例

1//先申请外层指针。

2char**pmalloc(sizeof(char*)*5);

3//申请内层指针

4for(inti0;i5;i++)

5{

6

p[i]malloc(sizeof(char)*10);

//字符串长度=10个字符。

7}

8//写

9for(inti0;i5;i++)

10{

11

/

显示全部
相似文档