Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371

    Array di stringhe e puntatori

    ciao
    mi stavo esercitando con il C e mi sono imbattuto in un esercizio nel quale dovevo gestire un array di stringhe, inizialmente mi sono limitato ad inizializzarlo cosi:
    codice:
    char A[4][]={"cuori", "picche", "quadri", "fiori"};
    però mi veniva restituito l'errore
    error: array type has incomplete element type
    allora ho cercato su internet quale fosse l'errore e ho trovato che in realtà dovrei inizializzarlo cosi:
    codice:
    char *A[]={"cuori", "picche", "quadri", "fiori"};
    ed in effetti cosi funge, però non riesco a capire, creando l'array cosi andrei ad indicare al compilatore che il secondo indice dell'array è un puntatore giusto?
    ma ogni posizione di un array non è già di default un puntatore?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    In realtà la prima forma è sbagliata perché devi indicare la lunghezza massima delle stringhe nel secondo indice

    codice:
    char A[][8]={"cuori", "picche", "quadri", "fiori"};
    e non il numero di stringhe nel primo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2009
    residenza
    Roma
    Messaggi
    371
    ma usando invece la seconda forma da me indicata, quella con * le stringhe potrebbero essere di una qualsiasi lunghezza giusto?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non sono la "stessa cosa" ...

    Se usi la forma con i puntatori stai creando un vettore di puntatori a stringhe costanti. In pratica crei un elenco di 4 indirizzi a delle stringhe che verranno memorizzate nel "testo" del tuo eseguibile e che *non* potrai modificare. Se ti servono come costanti, va benissimo.

    Se usi la forma che ti ho indicato, hai creato un array di char (un elenco di stringhe) che potrai modificare (ovviamente nel limite della loro lunghezza massima).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.