c - C 中的二维数组索引怎么样?

标签 c multidimensional-array indexing

我是 C 编程新手,我需要使用二维整数数组(矩阵)。例如,我这样做:

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*/
}

出了什么问题?

最佳答案

What is wrong?

错误的是您对编译器和/或语言的假设。 C 没有边界检查。如果您访问越界数组,编译器不会警告您。

相反会发生什么:您的代码现在无效,据说会调用未定义的行为,并且它可以自由地做任何它想做的事情(包括崩溃或看似“工作正常”)。

关于c - C 中的二维数组索引怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18068624/

相关文章:

objective-c - OSX 中的标准临时目录

c - 将读取与 inotify 一起使用

调用二维数组函数?

php - 使用 PHP 创建游戏时间表 _ 比我想象的要难

r - 如果语句条件错误在两个和问题中缺少值?

java - Hibernate 映射列表 - 索引

c - printf() 中 %S(大写 s)的用途是什么?

将 WCHAR 字符串转换为小写 C

javascript - 在 JavaScript 中递增多维数组

xml - 如何在 Marklogic 中创建元素范围索引?