Oppure

Loading
22/07/12 16:26
Umberto
lo ho sostituito con un ciclo for riga 160 e nella riga 184 il while funziona
Ultima modifica effettuata da Umberto 22/07/12 16:27
aaa
22/07/12 16:30
Se è questo

for(tvar = 0;strcmp(argv[iargv],vname[tvar])!=0;tvar++){
                                }


è sbagliato come il ciclo while. Anche questo sfonda in memoria dato che tvar aumenta in maniera indefinita se la strcmp non è mai soddisfatta.

Devi introdurre un controllo in modo che tvar non vada oltre il massimo consentito per vname (mi pare 1000) altrimenti avrai sempre l'errore.

Devi scrivere il codice in modo da utilizzare molto di più delle funzioni per parti comuni di codice ... non ripetere tutto altrimenti il codice diventa ingestibile (come è già ...)...



P.S. Continuano ad esserci nel sorgente chiamate a stpcpy ... non capisco perché non le correggi e come fai a compilare ... mah ...
Ultima modifica effettuata da 22/07/12 16:31
22/07/12 16:33
Umberto
in che senso strcmp non viene mai soddisfatta ?
e per le stpcpy codecogs.com/reference/computing/c/string.h/…
aaa
22/07/12 16:50
Postato originariamente da Umberto:

in che senso strcmp non viene mai soddisfatta ?


Ovvero, la condizione è *sempre* soddisfatta per cui dal ciclo non esci *mai*

Se cerchi una stringa "xyz" e quella non c'è nel vettore vname, dal ciclo non esci mai e quindi sfondi in memoria.

e per le stpcpy


Ok ... perchè usi gcc e linux ... su altre piattaforme non esiste.
22/07/12 16:55
Umberto
Si certo , programma risolto ma non capisco perchè sulla riga 184 il while va ?
Grazie
Ultima modifica effettuata da Umberto 22/07/12 16:56
aaa
22/07/12 16:57
La while va solo nel caso in cui la stringa venga trovata (e forse in quel caso si verifica che la stringa viene trovata).

La while *non va* solo nel caso in cui la stringa che cerchi non esiste.

Chiaro ora?
23/07/12 7:20
Umberto
Si grazie
:k:
aaa