gpt4 book ai didi

c - C 中 argv 的确切内存大小

转载 作者:太空狗 更新时间:2023-10-29 15:51:14 25 4
gpt4 key购买 nike

所以我的教授给了我(其中 x 是一个 C 可执行文件):

$ ./x y z w

他说int main(int argc, char **argv)argv的内存大小是48字节,包括它自己。

谁能帮我解释一下?

最佳答案

argv 正如函数所说,是一个指向 char 的指针,就大小而言意味着它是一个指针。通常(几乎总是但不能保证?),所有指针的大小都相同。如果这是一台 64 位机器,指针的大小将为 8 个字节。在这种情况下,argv 包含五个元素:指向五个字符指针的指针:'./x'、'y'、'z'、'w' 和 NULL,因为 argv 以 NULL 结尾。

根据我的计算,argv 中还剩 40 个字节,所以我不确定他从哪里得到另外 8 个字节。

编辑:正如其他人所建议的,argv 本身也会占用一个指针的空间,所以还有另外 8 个。

关于c - C 中 argv 的确切内存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8563649/

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