gpt4 book ai didi

c - 我认为 sizeof 的参数是针对可变长度数组求值的

转载 作者:行者123 更新时间:2023-12-02 07:20:51 26 4
gpt4 key购买 nike

<分区>

请考虑

#include <stdio.h>

int main(void) {
int size = 1;
int foo[1];
int bar[size];

int* pfoo = 0;
int* pbar = 0;

printf("%zu %zu\n", sizeof(pfoo = foo), sizeof(pbar = bar));
printf("%p %p\n", pfoo, pbar);

return 0;
}

https://ideone.com/VeiJXH 上运行时的输出是

8 8

(nil) (nil)

我希望将 pbar 设置为 bar 的第一个元素的地址,因为 bar 是一个可变长度数组。我认为 sizeof 是在运行时针对可变长度数组计算的,这意味着 pbar 将是非零的。

这是怎么回事?这不是测验;这是我在代码中遇到的问题的精简版。

编辑:我认为复制在这里没有帮助 - 我的问题是关于 sizeof 没有被评估为可变长度数组。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com