相关疑难解决方法(0)

与malloc/free相比,使用C99 VLA是个好主意吗?

使用C99 VLA是个好主意吗?与malloc/free相比,何时使用VLA是否合适?(因为VLA可能会爆炸堆叠?)

c c99

19
推荐指数
1
解决办法
6998
查看次数

书籍为什么说"编译器为内存中的变量分配空间"?

书籍为什么说"编译器为内存中的变量分配空间".这不是可执行文件吗?我的意思是,例如,如果我写下面的程序,

#include <iostream>
using namespace std;

int main()
{
   int foo = 0;
   cout<<foo;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我运行program.exe,这个可执行文件将自己命令为变量foo分配一些空间,并编译它,并获得一个可执行文件(让它成为program.exe).不是吗?请解释为什么书籍继续说,"编译器会这样做......这样做"而实际上,编译后的可执行文件就是这样做的.

在这个问题中添加另一个相关问题,为什么sizeof称为编译时运算符?它不是一个实际的运行时运算符吗?

c++ compiler-construction runtime sizeof

11
推荐指数
3
解决办法
809
查看次数

在C++书籍中,数组绑定必须是常量表达式,但为什么以下代码有效?

#include <iostream>
using namespace std;

int main(){
    int n=10;
    int a[n];

    for (int i=0; i<n; i++) {
        a[i]=i+1;
        cout<<a[i]<<endl;
}
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在Mac下的Xcode4中运行良好

如书中所说,这应该是错的,为什么?

好糊涂〜

c++

9
推荐指数
2
解决办法
769
查看次数

标签 统计

c++ ×2

c ×1

c99 ×1

compiler-construction ×1

runtime ×1

sizeof ×1