当前位置:  开发笔记 > 编程语言 > 正文

记忆消耗?

如何解决《记忆消耗?》经验,为你挑选了2个好方法。

我有一段代码在哪里

for ( ; ; )
{

  char *buf;

  /* Some code */
}

这里的问题是代码每次循环循环时都会分配内存.我的意思是当它循环时,将为指针保留至少4个字节.



1> Daniel LeChe..:

指针的空间将在堆栈上分配,但它会在每次迭代结束时弹出,因此您无需担心它.



2> 小智..:

我认为任何合理的编译器都会优化分配.例如,看一下GCC生产的组件:

_foo:
    pushl   %ebp
    movl    %esp, %ebp
    subl    $40, %esp
L2:
    movl    -12(%ebp), %eax
    movl    %eax, (%esp)
    call    L_puts$stub
    jmp     L2

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有