предупреждение: несовместимое преобразование целого числа в указатель, инициализирующее 'int *' выражением типа 'int'; возьмите адрес с помощью & - PullRequest
0 голосов
/ 14 июля 2020

У меня есть этот код, и я пытаюсь его отладить сейчас и получаю следующую ошибку:

warning: incompatible integer to pointer conversion initializing
      'int *' with an expression of type 'int'; take the address with &
      [-Wint-conversion]
    int * b = a[1];

Код, который я отлаживаю, следующий:

#include<stdio.h>
  
int main() {
    int ii;
    int a[] = {1,2,3,4,5,6};
    int * b = a[1];

    for (ii=0;ii<6;ii++) {
        printf("%d ",*(b+ii));
    }
    printf("\n");
    return 0;
}

1 Ответ

0 голосов
/ 14 июля 2020
int *b;

b - указатель, a [1] - целое число ...

Попробуйте:

int *b;
*b=a[1];

Это приведет нас к самому забавному. У вас нет памяти!

Другой способ:

int *b=(a+1);

Еще один:

int *b=&a[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...