我有一些数字,如:
int a[10]={1,1,1,1,1,1,1,1,2,1};
我找到2的位置,然后将indexof(2)+4和-4的值也改为2.
问题是indexof(2)+4不存在,这意味着c将覆盖一些不属于数组的内存。如何阻止c写入超出数组长度的索引?
答案 0 :(得分:3)
在C中,没有内置检查(即没有程序员参与的情况),以确保数组索引保持在范围内。
如果要访问(读取或写入)a[i]
,那么在执行此操作之前,您需要编写i
是有效索引的代码检查,如果不是a[i]
,则不要访问i
0
无效。这意味着确保值介于n-1
和n
之间,其中n
已知为数组中元素的数量。
有多种方法可以获取或设置(comment "
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello, World");
System.out.println();
}
}
")
的值。每个都有适用性限制。
答案 1 :(得分:1)
您可以使用sizeof()运算符来获取数组的大小。使用它,您可以在更改值之前检查值indexof(2)+4是否大于数组大小。