![]() |
1
5
这里只有一个分配。这个
请注意
C有可变长度数组(VLA),但它们不能在结构中声明,只能在函数参数列表或函数内的块中声明。 |
![]() |
2
3
我想明确说明其他答案中隐含的重要部分:
它接收字节数作为输入,并返回一个指针,该指针后面至少有那么多字节可寻址。
所以
我们可以修改一下你的代码(我有点作弊,因为在我的机器上
从内存中的值可以很容易地看到结构在内存中的布局,可以注意到数组嵌入到内存布局中。
我又增加了16字节的内存
|
![]() |
3
1
|
![]() |
4
1
的内存
造成混淆的原因是数组有时会衰减为指针,反之亦然。这方面的一个例子是
|
![]() |
TheKing · 为什么数组的地址可以有负值? 3 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 7 年前 |
![]() |
Jaques · “.exe”已触发断点 7 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |