记忆消耗?

sam*_*kar 2 c memory consumption

我有一段代码在哪里

for ( ; ; )
{

  char *buf;

  /* Some code */
}
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*ant 8

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


小智 5

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

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