警告:赋值在没有强制转换的情况下从指针生成

时间:2011-09-12 07:56:26

标签: c

我正在尝试对二维数组中的元素进行排序,但是在将值赋值给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;
                   }
           }
     }

2 个答案:

答案 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)

警告是在其中一个赋值语句中从指针到整数的不安全转换。它可以是代码中的任何语句。您应该提供变量类型声明,以便检测警告的来源。