Pagina 1 di 1

[RISOLTO] [C] Controllo su array di stringhe

Inviato: mar 17 giu 2014, 10:40
da Blallo
E' una domanda idiota, credo.
Ma non ho trovato risposte soddisfacenti su Google.

Devo allocare un array di stringhe per avere dei riferimenti per una matrice di incidenza.
Quindi ho un

Codice: Seleziona tutto

char **array
Ora dopo averlo allocato, devo:
- cercare se c'è un dato coincidente
- se c'è gli restituisco l'indice
- se non c'è devo aggiungerlo e restituire l'indice

Ma il problema sorge a monte, poiché ovviamente l'array parte vuoto.
Come faccio a controllare che l'array sia completamente vuoto?
E di conseguenza, anche all'aggiunta di un dato, far capire alla ricerca dove fermarsi
dato che non sarà pieno sin dall'inizio?

Ho provato a controllare se il puntatore vale NULL, ma sembra non funzionare.

Si, potrei usare una lista, ma dato che, in fase acquisizione dati,
ricavo la quantità di dati che questo array conterrà,
volevo evitare e vedere di fare qualcosa di carino in C.

Grazie in anticipo!

Re: [C] Controllo su array di stringhe

Inviato: mar 17 giu 2014, 12:56
da robbybby
Post errato, scusate.

Re: [C] Controllo su array di stringhe

Inviato: mar 17 giu 2014, 12:57
da robbybby
Prova con un memset():

Codice: Seleziona tutto

memset(array,
       0x00,
       dimensione_array * sizeof(char));

Re: [C] Controllo su array di stringhe

Inviato: mar 17 giu 2014, 13:01
da Blallo
Ti ringrazio!
(Non capisco i "...", è per la demenzialità della domanda? :p )

Re: [C] Controllo su array di stringhe

Inviato: mar 17 giu 2014, 13:46
da brg
Non puoi aggiungere alcunché ad un array dichiarato in quel modo. O usi memset, o usi una struttura. Io userei una struttura.

Re: [C] Controllo su array di stringhe

Inviato: mar 17 giu 2014, 16:42
da robbybby
Blallo ha scritto:Ti ringrazio!
(Non capisco i "...", è per la demenzialità della domanda? :p )
I puntini sono per cancellare un post parziale, dato che mi era scappato l'Enter.
Adeso correggo. Scusa.

Quando allochi memoria con malloc() (o new in C++) il contenuto del blocco di memoria è casuale: non viene inizializzato.

Re: [C] Controllo su array di stringhe

Inviato: mar 17 giu 2014, 17:00
da Blallo
brg ha scritto:Non puoi aggiungere alcunché ad un array dichiarato in quel modo. O usi memset, o usi una struttura. Io userei una struttura.
Dopo userei una malloc per allocare un array di puntatori a char, che poi userei per memorizzare stringhe allocate.
Il famoso "senza sprechi di memoria" che trovi in tante esercitazioni :D
robbybobby ha scritto:Quando allochi memoria con malloc() (o new in C++) il contenuto del blocco di memoria è casuale: non viene inizializzato.
Ecco, spiegazione esauriente e semplice.