gpt4 book ai didi

c - 我是否在 c 中访问了错误的(超出范围的)char 数组索引

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:34 25 4
gpt4 key购买 nike

假设我们在 c 中有一个字符数组,

char a[20];

我们可以访问索引 20 以像这样放置终止 NULL。

a[20]='\0';

但在我的算法中。 (“这是 char 数组转换器的整数”)如果最后一个索引小于 char 数组的大小,则有必要放置终止 NULL,例如,

如果我的 int 大小是 4(“1421”),那么我必须在索引 0 处放置“1”,在索引 1 处放置“4”,在索引 2 处放置“2”,在索引 3 处放置“1”。

最后在索引 4 处终止 NULL

index=4;
a[index]='\0';

修复相同代码的另一种方法,

if(index<20)  (Will increase one condition)
a[index]='\0';

但我只想知道是否有可能......将终止 NULL 放在索引 20 处。

好的,我知道了非常感谢大家的帮助。

最佳答案

数组 char a[20] 有 20 个字符的空间,索引为 0 到 19。写入 a[20] 是在数组外写入,并且将有不可预知的后果。您被限制在 20 个字符以内,包括任何终止 NULL 字符。如果您需要 20 个字符的空间加上一个终止 NULL,则需要将您的数组声明为 char a[21];。此外,声明 a[20] 不会在任何地方放置 NULL。

关于c - 我是否在 c 中访问了错误的(超出范围的)char 数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15050038/

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