![]() |
1
5
这里只有一个分配。这个
请注意
C有可变长度数组(VLA),但它们不能在结构中声明,只能在函数参数列表或函数内的块中声明。 |
![]() |
2
3
我想明确说明其他答案中隐含的重要部分:
它接收字节数作为输入,并返回一个指针,该指针后面至少有那么多字节可寻址。
所以
我们可以修改一下你的代码(我有点作弊,因为在我的机器上
从内存中的值可以很容易地看到结构在内存中的布局,可以注意到数组嵌入到内存布局中。
我又增加了16字节的内存
|
![]() |
3
1
|
![]() |
4
1
的内存
造成混淆的原因是数组有时会衰减为指针,反之亦然。这方面的一个例子是
|
![]() |
9-Pin · 释放具有内部空字节的动态分配字符串 6 月前 |
![]() |
Viewed · 如何从popen中获得结果? 9 月前 |
|
dhutturi · malloc()没有分配我期望它[复制]的内容 10 月前 |
|
vansergh · 如何为malloc分配的数组释放内存? 11 月前 |
![]() |
EagleStar · 显示错误的值:C指针还是malloc问题? 11 月前 |