gpt4 book ai didi

c - 内存地址如何知道数组的长度?

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:59 27 4
gpt4 key购买 nike

我想我可以标记 C++、汇编和 C,因为内存管理在所有语言中的工作方式都相似。

我刚刚进入 C 语言阶段,正在学习指针。我知道如果你存储一个字符串(或者在 C 中,更广为人知的是 char 数组),它实际上只是该数组第一个元素在内存中的一个地址。

数组的第一个元素如何知道它必须对整个数组计数多少,我自己的猜测是它在第一次出现 \0 时停止,但我是对的吗?我告诉过 \0 是一个标志,表明数组已经完成,你已经击中了最后一个元素(或者从技术上讲,在最后一个元素之后 1)。

我想我发布这个是为了验证我可能是正确的答案。谁能更详细地解释一下?

最佳答案

不是。

使用太大的值作为索引,并且您从数组外部的内存读取/写入。

在 C++ 中执行此操作,优化器可能会缓存数据而不刷新它并获得疯狂的程序状态 (UB)。

现在,通过 = 在结构中复制一个数组?然后在编译时知道大小,同样不使用运行时标记。

关于c - 内存地址如何知道数组的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126309/

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