Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    puntatore a stringa?

    Salve a tutti, sono un nuovo utente, ho deciso di iscrivermi in quanto navigando su google ho trovato molte discussioni di questo forum piuttosto interessanti...
    Ora però ho un piccolo problema, non riesco ad assegnare un vettore string (o char*) ad un puntatore a string (o a char*), cioè per esempio se ho

    char** Ptr;

    come faccio ad assegnare una stringa

    char* Stringa1;

    ad un elemento puntato da Ptr?
    Premetto che Stringa1 la trovo con questa funzione che calcola la sottostringa di una stringa:

    char* Calcola_Stringa(string riga, const char* vet_caratteri, size_t lunghezza)
    {
    char* nome = NULL;
    for(int i=0; i (minore) dim_nome; i++)
    {
    if(riga.substr(0,3)=="int" )
    nome = strncpy(nome,&vet_caratteri[i+4],lunghezza);
    else if(riga.substr(0,4)=="void")
    nome = strncpy(nome,& vet_caratteri[i+5],lunghezza);
    else if(riga.substr(0,5)=="float")
    nome = strncpy(nome,&vet_caratteri[i+6],lunghezza);
    nome++;
    }
    return nome;
    }

    Nella funzione principale assegno:

    *Ptr = Calcola_Stringa(riga,vet_caratteri, lunghezza)
    ma il compilatore mi restituisce:

    [Linker error] undefined reference to `Calcola_Nome_Funzione(std::string, char const*, int)'

    Non so se sono stato abbastanza chiaro...
    Che significa?
    HELP! :confused:
    Ci sono solo due cose infinite: l'universo e la stupidità umana. Ma non sono del tutto sicuro della prima

  2. #2
    Ovviamente parlo del C++ (scusate la mancanza...)
    Ci sono solo due cose infinite: l'universo e la stupidità umana. Ma non sono del tutto sicuro della prima

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma il codice della funzione e' nello stesso file sorgente della funzione in cui viene chiamato?

    O parliamo di file sorgenti diversi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    eppoi Calcola_Nome_Funzione cos'è??

  5. #5
    Ovviamente sono nello stesso file sorgente!

    Calcola_Nome_Funzione è il vero nome della funzione Calcola_Stringa, nel codice postato ho cambiato qualche nome per rendere più semplice la lettura, sorry!
    Ci sono solo due cose infinite: l'universo e la stupidità umana. Ma non sono del tutto sicuro della prima

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da giulio.dr
    Ovviamente
    E perche' lo ritieni ovvio?

    Dato che e' il linker a non trovare la funzione in questione, potrebbe benissimo essere in un altro file sorgente che non hai incluso nel progetto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Non sono ancora molto esperto, perciò sono abituato a scrivere tutte le funzioni nello stesso file sorgente...secondo voi c'è qualche errore di sintassi o funzione della libreria sbagliata o assegnmenti sbagliati?
    Ci sono solo due cose infinite: l'universo e la stupidità umana. Ma non sono del tutto sicuro della prima

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    probabilmente la funzione è dichiarata dopo il main e non viene trovata in compilazione..

  9. #9
    In pratica dovrei simulare un compilatore, cioè creare un programma che legge un file di testo riga per riga e memorizza i nomi delle funzioni dichiarate, quindi estrae la sottostringa del nome della funzione dal carattere dopo il primo spazio fino alla ' ( ' e memorizzarlo in un puntatore a stringa.
    Una dichiarazione di funzione è del tipo:

    void funzione(float, int)
    {
    float z;
    int y;
    }

    Il codice per estrarre la sottostringa e memorizzarla nel Ptr è corretto?
    Ci sono solo due cose infinite: l'universo e la stupidità umana. Ma non sono del tutto sicuro della prima

  10. #10
    Io metto sempre le funzioni dopo il main e non mi davano quasi mai questo tipo di problemi perchè comunque ci sono i prototipi all'inizio del codice...
    Ci sono solo due cose infinite: l'universo e la stupidità umana. Ma non sono del tutto sicuro della prima

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.