PDA

Visualizza la versione completa : [C] Warning di compilazione in passaggio di parametro: "incompatible pointer type"


slashino
10-01-2012, 21:17
Qualcuno può darmi una mano a rintracciare questo warning con cui non ho mai avuto a che fare? codice:


#include<stdio.h>
#include<stdlib.h>
int lettura_dim(FILE *f);
void leggi_parola(char parole[][20],int i,FILE* f);
void elabora(char parole[][20],char elaborate[][20],int i);
main()
{
int n,i;
char parole[10][20],nome[10];
char elaborate[10][7];
FILE *f;
printf("Inserire il nome del file\n");
scanf("%s",nome);
f=fopen(nome,"r");
if(f==NULL)
{
printf("Errore nell'apertura del file. riavviare.\n");
}
else
{
n=lettura_dim(f);
for(i=0;i<n;i++)
{
leggi_parola(parole,i,f);
printf("La parola letta è: %s\n", parole[i]);
elabora(parole,elaborate,i); <----------------------Qui punta il warning
}
fclose(f);

}


system("pause");
}
int lettura_dim(FILE *f)
{
int n;
fscanf(f,"%d", &n);
return n;
}
void leggi_parola(char parole[][20],int i,FILE* f)
{
fscanf(f," %s ", parole[i]);
}
void elabora(char parole[][20],char elaborate[][20],int i)
{
int k;
for(k=0;k<6;k++)
{
elaborate[i][k]=parole[i][k];
}
elaborate[i][k]='\0';

}

Warning del compilatore:


75 [Warning] passing arg 2 of `elabora' from incompatible pointer type

oregon
10-01-2012, 21:21
Sempre una questione di attenzione ... hai scritto

void elabora(char parole[][20],char elaborate[][20],int i);

e

char elaborate[10][7];

Non vedi problemi?

slashino
10-01-2012, 21:22
Grazie mille! E scusa ancora per l'altro post non voluto...

valia
11-01-2012, 09:34
Originariamente inviato da slashino
Grazie mille! E scusa ancora per l'altro post non voluto...

poi un consiglio per il futuro: quando il compilatore ti dice una cosa del genere, leggi attentamente dove ti manda e chiediti se alla riga in esame usi tutto a modo. Molto spesso domande di questo tipo le risolvi solo

slashino
11-01-2012, 09:37
grazie per il consiglio. lo seguirò :)

alka
11-01-2012, 10:15
Originariamente inviato da valia
poi un consiglio per il futuro

Mi associo al suggerimento, sottolineando che si tratta più di una regola: prima di postare, ci si deve prendere il tempo per riflettere e capire l'errore commesso; in prima battuta, poi, si fa una ricerca su Google (http://www.google.com) per verificare le risorse pubbliche che possono fornire indicazioni utili; se la soluzione non si trova, allora si può aprire una discussione per chiedere aiuto, specificando tutti i dettagli del problema.

Il forum deve essere un punto di arrivo, e non di partenza, per non creare discussioni inutili che possono trovare soluzione alla prima ricerca fatta sul Web oppure osservando per qualche secondo in più il codice sorgente scritto.

slashino
11-01-2012, 10:18
Sono d'accordo. Mi scuso, seguirò queste indicazioni in futuro :)

Loading