Quote Originariamente inviata da rossonero922 Visualizza il messaggio
prima di tutto grazie per avermi dato una risposta decente........l esercizio dice di concatenare una serie di stringhe ottenute in ingresso....essendo un esercizio così fatto tanto per passare il tempo non è che mi sono messo a fare tutti i controlli...comunque grazie per gli accorgimenti...
Se è un esercizio e lo risolvi male, a cosa serve farlo?
codice:
s=malloc((sizeof(stringaa)*risp)+1);
il prodotto per risp lo dovevo togliere perche avevo in mente un altra cosa..ma poi so andato avati e me lo so dimenticato.....invece per quanto riguarda il sizeof va bene se lo cambio con strlen()???
codice:
strlen(stringa)*sizeof(char)
casomai, ma non ne vedo l'utilità dato che quel parametro in input contiene solo spazzatura e non sai se c'è un '\0' e non sai quanto spazio verrà allocato e...
poi se metto un controllo sulla gets potrei continuare ad usarla?
Non puoi mettere un controllo sulla gets, usa fgets invece.
per quanto riguarda strcat() come potrei risolvere invece?
Concatena a mano/scrivi una funzione che conserva uno stato/ aggiungi un indicatore della lunghezza all'inizio in modo da sapere sempre dove sta la fine
per il fatto che il risultato concatena lo passo direttamente direttamente alla printf senza salvare il puntatore mi sono semplicemente attenuto all esercizio...è chiaro che se dovevo farci qualcosa il puntatore me lo salvavo...
MItaly stava proprio puntualizzando che tu DEVI farci qualcosa con quel puntatore, ossia liberare la memoria allocata.