我想所有都malloc(sizeof(structure)) 可以这样替换:
char[sizeof(structure)]
Run Code Online (Sandbox Code Playgroud)
那么什么时候malloc需要?
Mat*_*lia 22
请注意,没有动态内存分配并不是完全不可能的(例如,整个rockbox项目几乎没有它可以工作),但是在某些情况下,您实际上需要通过使用大型静态缓冲区并编写自己的分配器来模拟它.
顺便说一句,在C++中你永远不会使用malloc()/ free(),而是运算符new和delete.
相关:一个试图在没有工作的情况malloc被证明是一个大混乱.
您将使用malloc动态分配内存,原因如下:
我可以看出你的观点.您可以认为您可以始终对所有这些使用声明性语法,甚至使用变量来声明内存空间的大小,但这会:
您可能会及时了解这一点,不用担心.
此外,您应该尝试了解有关内存模型的更多信息.使用动态分配和使用静态分配时,不要使用相同的内存空间.
对于第一个指针,请访问:
友好的建议:我不知道您是否在*NIX或Windows上开发C语言,但无论如何使用gcc,我建议您在自学时使用以下编译标志:
-Wall -ansi -pedantic -Wstrict-prototypes
Run Code Online (Sandbox Code Playgroud)
当您不知道在编译时分配多少内存时。举一个非常简单的程序,您需要将用户输入的数字存储在链接列表中。这里你不知道用户将输入多少个数字。因此,当用户输入一个数字时,您将为其创建一个节点malloc并将其存储在链接列表中。
| 归档时间: |
|
| 查看次数: |
8182 次 |
| 最近记录: |