Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110

    [C] passing argument

    salve a tutti.
    Ho una struttura così fatta:

    char *currentString; //globale

    int searchFile(char *q[]);

    int myfunc(void){


    for(i=0;i<3;i++){



    myString[i] = calloc(kMaxStringLength, sizeof(char));


    currentString = myString[i];


    searchFile(currentString);

    }
    perchè in fase di compilazione mi dice:
    warning: passing argument 1 of myfunc from incompatible pointer type

    currentString contiene una stringa "supercalifragilistichespiralidoso" (diversa ad ogni iterazione)

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Evidentemente nel tuo codice passi alla funzione "myfunc" dei parametri, mentre da come è dichiarata, essa non ne vuole.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110
    eppure è dichiarata come

    int myfunc(void);

    asp... l'errore me lo fa notare per searchFile(currentString) !

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [C] passing argument

    Originariamente inviato da earp_
    currentString contiene una stringa "supercalifragilistichespiralidoso" (diversa ad ogni iterazione)
    Occhio che currentString è un puntatore a char mentre la funzione searchFile si aspetta come parametro un array di puntatori a char.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    currentString è un puntatore a carattere
    mystring[i] è un carattere.
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110
    la dichiarazione di myString è

    char *myString[3];

    quindi:


    int main(void);
    int myFunc(void);
    int searchFile(char *q[]);


    int main(void){

    int error;

    error = myFunc();
    if(error)
    return error;

    error = searchFile(currentString, stringToSearch);
    if(error)
    return error;

    return kErrorNo;
    }

    int myFunc(void){

    ...

    for(i=0;i<3;i++){



    myString[i] = calloc(kMaxStringLength, sizeof(char));

    if(myString[i]==NULL)
    return kErrorMemory;

    fscanf(myEnter,"%s",myString[i]);
    ...

    currentString = myString[i];

    searchFile(currentString);
    e l'errore è alla linea
    in searchFile(currentString);

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da earp_
    e l'errore è alla linea
    in searchFile(currentString);
    Lo ripeto:

    currentString è un puntatore a char mentre la funzione searchFile si aspetta come parametro un array di puntatori a char.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    110


    chiaro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.