PDA

Visualizza la versione completa : [C] Errore "Initialization from incompatible pointer type"


earp_
11-05-2007, 14:38
Dove sbaglio? il compilatore mi dice: search.c:5: warning: initialization from incompatible pointer type

int *mySearch[] = {"3","4","4","7","\0"};

void display_array(int *q[]);

int main(void){

display_array(mySearch);

return 0;
}

void display_array(int *q[])
{
int t;

for(t=0; t<5;t++)
printf("%d\n", *q[t]);
}

bigmickey
11-05-2007, 14:49
Scusa.. che significa quel "\0" ?
Forse fai un pò di confusione con le stringhe (array di char)?

Prova questo



#include <stdio.h>
#include <stdlib.h>

int mySearch[] = {3,4,4,7,0};

void display_array(int q[]);

int main(void){

display_array(mySearch);

system("pause");

return 0;
}

void display_array(int q[])
{
int t;

for(t=0; t<5; t++)
printf("%d\n", q[t]);

}


fai sapere

earp_
11-05-2007, 14:51
do un senso...vorrei che alla fine visualizzassi le parole nell'array...
invece visualizzo solo la prima lettera...
cosa devo fare per avere tutta la parola?
tks

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *mySearch[] = {"albero","casa","cane","porta","treno"};

void display_array(char *q[]);

int main(void){

display_array(mySearch);

return 0;
}

void display_array(char *q[])
{
int t;

for(t=0; t<5;t++)
printf("%c\n", *q[t]);
}

oregon
11-05-2007, 15:06
Deve essere

printf("%s\n", q[t]);

... capirai da solo il perche' ...

earp_
11-05-2007, 15:12
si ma cosi' facendo mi da segmentation fault...

pensavo che ci fosse un modo senza stare a inizializzare l'array.

oregon
11-05-2007, 15:30
No ... non da' segmentation fault ... stai attento ...

earp_
11-05-2007, 15:35
mi confondevo...nel manuale dava

printf("%d", *q[t]) ma si riferiva ad interi...

ora e' un po' piu' chiaro.

tks

bigmickey
11-05-2007, 16:02
giusto una precisazione... la direttiva #include <string.h> non serve.

earp_
11-05-2007, 16:08
ok tks, ma mi serve in seguito. un'ultima cosa dato

char *mySearch[] = {"Na","C","Li","Be","Mg","\0"};

che funzione posso usare per sapere quanti gruppi di elementi ci sono, ovvero 6.

qualche suggerimento?

oregon
11-05-2007, 16:42
Ma l'elemento finale "\0" e' stato messo lì appositamente per concludere la serie oppure no?

Loading