Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [c] puntatori a char

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [c] puntatori a char

    Ciao!
    Io ho un array di puntatori a char, quindi un array a cui a ogni elem corrisponde una stringa.

    come faccio ad assegnargliela ? :bubu: :bubu: :bubu:

    ho provato con:

    *a[i] = stringa oppure a[i] = stringa

    ma in fase di esecuxione ottengo brutti errori.

    altre possibilita?

  2. #2
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    si può fare con la indirezione multipla (mi pare si chiami così )
    Ossia "un puntatore che punta ad un altro puntatore"...
    Ad esempio
    codice:
    char ** frase
    Per assegnargli delle stringhe si può fare:
    codice:
    frase = (char **) malloc ( sizeof(char **) * NUM_STRINGHE );
    for (int i = 0; i < NUM_STRINGHE; i++)
       frase[i] = (char *) malloc ( sizeof(char *) * NUM_CARATTERI );
    Questo è il metodo che preferisco...
    Tuttavia è possibile farlo anche con un array di puntatori:
    codice:
    char *frase[NUM_STRINGHE];
    for (int i = 0; i < NUM_STRINGHE; i++)
       frase[i] = (char *) malloc ( sizeof(char *) * NUM_CARATTERI);
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Ma anche:

    char *stringhe[10];

    stringa[1] = "ciao";

    Se hai errori a runtime bada che se allochi dinamicamente lo spazio per la stringa devi allocare un numero di locazioni pari alla lunghezza per la stringa + 1, e in ultima posizione devi mettere il carattere '\0' che rappresenta la fine della stringa


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.