我正在尝试对二维数组中的元素进行排序,但是在将值赋值给k时会出现此错误。
“警告:赋值在没有强制转换的情况下从指针生成整数”。
为什么我会得到它,我该如何解决?
for(i=1;i<3;++i)
{
for(j=3-1;j>=1;--j)
{
if(a[j-1]>a[j])
{
k = a[j-1];
a[j-1]=a[j];
a[j] = k;
}
}
}
答案 0 :(得分:5)
您在访问元素时错过了一个索引。所有地方都应a[j], a[j-1]
a[i][j], a[i][j-1]
。 a[i]
是指向2D数组中第i行第一个元素的指针。 a[i][j]
是索引i, j
的元素。
注意:虽然问题中未指定,但我几乎确定i, j, k
是整数,a
是一个2D整数数组。
答案 1 :(得分:1)
警告是在其中一个赋值语句中从指针到整数的不安全转换。它可以是代码中的任何语句。您应该提供变量类型声明,以便检测警告的来源。