c++ - sizeof 运算符在运行时发生变化?

标签 c++ c

<分区>

sizeof 运算符是一个编译时运算符,但在下面的程序中它会在运行时发生变化。

#include <stdio.h>

void func (int i) { 
    int a[i]; 
    printf("%d \n", sizeof(a)); 
} 

main() { 
    int i = 0; 
    while(i <= 5) { 
        func(i); 
        i++; 
    } 
}

内存将在运行时分配。编译器如何计算没有结构填充的结构大小?

最佳答案

您的信息已过时。 a 是一个变长数组;对于那些,sizeof 是在运行时确定的。可变长度数组是一项 C99 功能,在编写您的信息源时不存在。

关于c++ - sizeof 运算符在运行时发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237806/

相关文章:

c++ - 在类外访问类模板变量

c++ - C++ 类中的循环依赖

c - 为什么一个结构不能有一个与它自己类型相同的成员?

检查 char 是否以\xHH 表示法写入

c - 如何获取输入文本GTK2 + Glade的值

c++ - NSMutableArray 到 std::vector

c++ - 为什么 c_str() 返回一个 const 指针值时不输出地址

c++ - 使用 .png 文件的动画 cocos2dx

c - mmap 在 Intel (i7) 和 Arm 上的不同行为?

c - .so 库名称是否有更清晰的正则表达式?