C 卡在 for 循环中

标签 c

这是我的代码

int find_h(int i, int j, int current[N+1][N], int goal[N+1][N])
{
  int sum=0;
  int a, b;
  int cp[N*3], gp[N*3];
  for(a=0;a<N;a++)
  {
    for(b=0;b<N;b++)
    {
      cp[4*a+b]=current[a][b];
      gp[4*a+b]=goal[a][b];
      printf("b = %d\n", b);
    }
    printf("\n");
  }
  return sum;
}

N=4,current 和 goal 填入 0 到 15(含)的数字,各只出现一次。

它在前 3 次迭代中循环良好(直到 a=3),但随后它一直输出 b = 0。

谢谢

最佳答案

我认为您的循环正在覆盖内存。如果 N = 4,那么您正在分配 cp[12] 和 gp[12]。然而当 a = 3 cp[4*a+b] 和 gp[4*a+b] 都是 [12] 时,它已经超过了数组的末尾

关于C 卡在 for 循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939735/

相关文章:

c - 函数不以 return 语句结束

c - C 中的有符号与无符号运算

c - 在 C 中找出 eth 设备链接速度能力

c - 从 C 语言文件中读取 64 字节 block

c - 请举例帮助我更好地理解 C 中这些不同的类型声明?

在普通的旧 C 中将字节数组转换为十六进制字符串

c - 当在 powerPC sizeof 上增加指向结构数组的指针时,无法按预期工作

C代码int到字符串不起作用

c - 在函数内部时,如何获取它的返回地址?

c - 像在 bash 中一样在 c 中扫描单个字符