ciao a tutti
il seguente codice
char * comprimi(char * nome_source)
{
FILE * source;
FILE *dest;
char nome_dest[100];
strcpy(nome_dest,nome_source);
strcat(nome_dest,".cmp");
source=fopen(nome_source,"r");
dest=fopen(nome_dest,"w");
SET_BINARY_MODE(source);
SET_BINARY_MODE(dest);
def(source, dest, Z_DEFAULT_COMPRESSION);
fclose(source);
fclose(dest);
return nome_dest;
}
mi restituisce il seguente messaggio di warning:
"returning address of local variable or temporary"
perkè in pratica la variabile nome_dest è definita all'interno della funzione
dovrei definire un
char * nome_dest
e poi magari allocare memoria per questa variabile con una malloc.
Ora vorrei sapere
free(nome_dest) dove va richiamata se utilizzassi il malloc?
come dovrei fare per ottenere correttamente un char * in uscita?
Grazie a tutti
di certo non all'interno della funzione