Предупреждение: присваивание делает целое число из указателя без приведения - PullRequest
2 голосов
/ 12 сентября 2011

Я пытаюсь отсортировать элементы в 2-мерном массиве, но при присвоении значения 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 ]

5 голосов
/ 12 сентября 2011

Вы пропустили один индекс при доступе к элементу. a[j], a[j-1] должно быть a[i][j], a[i][j-1] во всех местах. a[i] - указатель на первый элемент i-й строки в двумерном массиве. a[i][j] - это элемент с индексом i, j.

Примечание: Хотя это и не указано в вопросе, я почти уверен, что i, j, k - это целые числа, а a - это двумерный целочисленный массив.

1 голос
/ 12 сентября 2011

Предупреждение о небезопасном преобразовании из указателя в целое число в одном из операторов присваивания. Это может быть любое из утверждений в вашем коде. Вы должны предоставить объявление типа переменной, чтобы определить, откуда исходит предупреждение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...