gpt4 book ai didi

c - 超出数组大小的元素值

转载 作者:行者123 更新时间:2023-11-30 20:48:16 28 4
gpt4 key购买 nike

How dangerous is it to access an array out of bounds?这并不能说明存储的值是什么。

当我尝试打印程序中所示的超出数组大小的元素时,它正在打印 0 。会永远0或一些垃圾值。

计划

#include<stdio.h>
int main()
{
int a[5] = {10};
printf("\n\ra[6] = %d",a[6]);
printf("\n\ra[7] = %d",a[7]);
printf("\n\ra[8] = %d",a[8]);
printf("\n\ra[9] = %d",a[9]);
return 0;
}

输出

a[6] = 0 a[7] = 0 a[8] = 0 a[9] = 0

我的问题是超出数组大小的元素的值是多少?它总是垃圾值还是零?

最佳答案

When i try to print the out of array size elements....

等等,停下来!!i(索引)的值超过 4 的值 [C 数组使用 0-based indexing ] 如果像 int a[5] = {10}; 那样定义的数组是无效的内存访问,会导致 undefined behavior 。你根本不能期待任何事情

  • 如果幸运的话,您可能会在运行程序时收到段错误,这强烈表明存在某种无效的内存访问。

  • 如果您运气不好,该程序可能会读取您笔记本电脑上存储的信用卡号,并为您的团队为任何小马订购披萨,并将剩余的钱转移到 ISIS 的某个匿名帐户。 如果你愿意面对这个问题,那么就访问超出范围的内存,否则,不要这样做。

总结:只是不要编写代码,因为您可以,或者语法是允许的。尝试理解要编写的代码。提到数组大小是为了引起共鸣。如果我们不必考虑尺寸,为什么那个尺寸在那里,在要塞的地方?

关于c - 超出数组大小的元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44388505/

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