Repository 32bit  Forum
Repository 64bit  Wiki

[RISOLTO] [C] Controllo su array di stringhe

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[RISOLTO] [C] Controllo su array di stringhe

Messaggioda Blallo » mar giu 17, 2014 9:40

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!
Ultima modifica di Blallo il sab giu 21, 2014 22:32, modificato 1 volta in totale.
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3243
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: [C] Controllo su array di stringhe

Messaggioda robbybby » mar giu 17, 2014 11:56

Post errato, scusate.
Ultima modifica di robbybby il mar giu 17, 2014 15:42, modificato 2 volte in totale.
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1178
Iscritto il: sab dic 16, 2006 10:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: [C] Controllo su array di stringhe

Messaggioda robbybby » mar giu 17, 2014 11:57

Prova con un memset():
Codice: Seleziona tutto
memset(array,
       0x00,
       dimensione_array * sizeof(char));
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1178
Iscritto il: sab dic 16, 2006 10:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: [C] Controllo su array di stringhe

Messaggioda Blallo » mar giu 17, 2014 12:01

Ti ringrazio!
(Non capisco i "...", è per la demenzialità della domanda? :p )
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3243
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: [C] Controllo su array di stringhe

Messaggioda brg » mar giu 17, 2014 12:46

Non puoi aggiungere alcunché ad un array dichiarato in quel modo. O usi memset, o usi una struttura. Io userei una struttura.
Avatar utente
brg
Linux 2.4
Linux 2.4
 
Messaggi: 269
Iscritto il: sab mar 12, 2011 14:20
Località: Montecatini
Slackware: 14.1
Kernel: 3.10.17
Desktop: KDE4

Re: [C] Controllo su array di stringhe

Messaggioda robbybby » mar giu 17, 2014 15:42

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.
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1178
Iscritto il: sab dic 16, 2006 10:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: [C] Controllo su array di stringhe

Messaggioda Blallo » mar giu 17, 2014 16:00

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.
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3243
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron