[C] warning: assignment makes integer from pointer without a cast

di Anonimizzato22107 il
2 risposte
Buona sera. Compilando il codice di un programma che somma tutti gli elementi di un vettore di numero elementi N (inserito dall'utente), il compilatore mi restituisce il seguente warning: assignment makes integer from pointer without a cast. Gli elementi vengono sommati indirettamente attraverso un puntatore:

#include <stdio.h>
#include <stdlib.h>
#define MAX 100

int main(){
    int v[MAX];
    int conta;
    int somma;
    int *y;
    int N;
    
    conta=0;
    somma=0;
    
    printf("Quanti elementi contiene il vettore? ");
    scanf("%d",&N);
    
    while(conta<N){
        *y=&v[conta];
        printf("Elemento n%d del vettore: ",conta);
        scanf("%d",y);
        somma+=*y;
        conta++;
    }
    
    printf("La somma degli elementi vale: %d",somma);
    exit(0);
}
Sono apprezzati anche consigli per il miglioramento/pulizia del codice

2 Risposte

  • ...per trovare e capire l'errore io suggerirei di confrontare e di ragionare su queste tre righe:

    int *y;

    *y=&v[conta];

    scanf("%d",y);
  • vuott ha scritto:


    ...per trovare e capire l'errore io suggerirei di confrontare e di ragionare su queste tre righe:

    int *y;

    *y=&v[conta];

    scanf("%d",y);

    Ho riletto il messaggio di warning e ho capito che devo puntare al vettore quando creo il puntatore, ora non lo segnala più. Ti ringrazio
Devi accedere o registrarti per scrivere nel forum
2 risposte