函数如何执行的问题和malloc执行赋值的过程

来源:7-7 动态内存分配【突破面试高频考点】

宝慕林0551093

2021-12-27

1.下图, points的值是0x000000, &points=0x7ff7bfeff6d0

图片描述

2.进入函数initMalloc后,int **p接收传入参数,那么应该是p=0x7ff7bfeff6d0, 之后再按照我的理解*p应该是0x7ff7bfeff6d0这块内存存放的值=0x000000

图片描述

图片描述

3.那应该是对0x000000这块内存进行动态分配, 那为什么下图是对0x7ff7bfeff6d0这块内存发生了变化?

图片描述

4.还想问一下malloc执行的过程是什么样的?比如*p=malloc()是先开辟一块儿内存然后将地址赋给指针变量p吗?

写回答

1回答

bennyhuo

2021-12-27

我先回答4,你再考虑下前面的

*p = malloc(...)

是malloc开辟内存,然后把地址赋值给p指向的内存,也就是*p,而不是赋值给p。

0
0

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程