cra*_*des -3 c indexing multidimensional-array
我是C编程的新手,我需要使用2D整数数组(矩阵).例如,我这样做:
void main(){
int matrix[2][2] = { {0,1}, {2,3} };
printf("%i", matrix[4][4]); /*Here should be an index error, but that doesn't happen*/
}
Run Code Online (Sandbox Code Playgroud)
怎么了?
小智 5
怎么了?
你对编译器和/或语言的假设有什么不对.C没有边界检查.如果您正在访问数组越界,编译器将不会警告您.
相反的是:您的代码现在无效,据说可以调用未定义的行为,并且可以随意执行任何操作(包括崩溃或看似"正常工作").