如何打印 2D 向量中的所有 8 个邻居(分割错误)
How to printing all 8 neighbors in a 2D vector (Segmentation Fault)
我正在尝试访问 ALL 二维向量索引的 8 个邻居。
然后我尝试执行以下伪代码来找到所有 8 个邻居
cout << grid[columnindex-(-1->1)][rowIndex-(-1->1)] << endl;
但是,当我这样做时,我遇到了分段错误。我不确定为什么。
I get a segmentation fault.
代码正在使用负索引在数组边界之外进行索引。
索引计算需要回绕。使用模运算。
// cout << grid[c-incc][r-incr] << endl;
int ci = (c-incc + vecSize)%vecSize;
int ri = (r-incr + veciSize)%veciSize;
cout << grid[ci][ri] << endl;
代码使用 (c-incc + vecSize)%vecSize;
而不是 (c-incc)%vecSize;
来处理 c-incc < 0
,因为 %
不是 modulo operator, but a remainder operator。
我正在尝试访问 ALL 二维向量索引的 8 个邻居。
然后我尝试执行以下伪代码来找到所有 8 个邻居
cout << grid[columnindex-(-1->1)][rowIndex-(-1->1)] << endl;
但是,当我这样做时,我遇到了分段错误。我不确定为什么。
I get a segmentation fault.
代码正在使用负索引在数组边界之外进行索引。
索引计算需要回绕。使用模运算。
// cout << grid[c-incc][r-incr] << endl;
int ci = (c-incc + vecSize)%vecSize;
int ri = (r-incr + veciSize)%veciSize;
cout << grid[ci][ri] << endl;
代码使用 (c-incc + vecSize)%vecSize;
而不是 (c-incc)%vecSize;
来处理 c-incc < 0
,因为 %
不是 modulo operator, but a remainder operator。