Originariamente inviato da matteo martis
shodan... le variabili filename le ho fatte altre volte in questo modo e hanno sempre funzionato....
shodan ha perfettamente ragione (ovviamente) ... hai fatto sempre così e hai sempre sbagliato, se ha funzionato è solo per caso dato che l'input sarà andato a sporcare memoria senza causare crash evidenti (fatto ancora più pericoloso).

io non ho allocato un solo char
Come no? E questa

char* filenameuno = malloc( sizeof(char))

cosa vuol dire?

ma ho detto le la variabile filename è un array di caratteri
Hai detto che filenameuno è un "puntatore a char" e precisamente punta ad un solo char allocato in memoria.

e di allocare per ogni elemento uno spazio corrispondente a quello del char...
Scusa, ma da quale libro hai studiato?

per le variabili first e second ho ho aggiunto il codice per la malloc
Con un numero sufficiente di caratteri ... spero non solo uno.

Sinceramente, devi rivedere sul libro su cui studi tutta questa parte (puntatori, vettori, allocazione ...)