检查数组是绑定还是超出绑定

时间:2016-11-20 03:35:48

标签: c arrays

基本上,我有这个看起来像这样的二维数组。

######...s
e......###

它假设只有在“。”时才从s-e打印*。 ,“#”就像一堵墙。

所以我检查所有可能的位置但由于某种原因它没有输出“*”到e。

我相信它是因为它与它的界限有关。

我做了一些检查,例如

if(array.x <=row && array.y<= col && array.x >=0 && array.y >=0)

这是检查我是在里面还是在境外的正确方法?

顺便说一下这是一个二维数组

1 个答案:

答案 0 :(得分:1)

假设row是行数,col是列数,array.xarray.y是索引,对边界中索引的正确检查是:

if(0 <= array.x && array.x < row && 0 <= array.y && array.y < col) {
   ...
}

请注意rowcol的严重不平等。