Buonasera. Vorrei essere aiutato a capire perchè questo semplicissimo codice non va. 
Non guardate la funzionalità che è nulla e mi serve solo per porre il problema.
In pratica passo 3 stringhe alla funzione 'Copia' la quale provvede a creare una nuova stringa (un char con n caratteri) uguale a quella passata, copiandola carattere per carattere per poi mostrarla a video.
Passando "pistolero", "aldo" e "mese" dovrebbe mostrare appunto le stesse parole e invece mostra:
pistolero
aldolero
meselero
Il problema è nella variabile 'newstring' che non viene "azzerata" ad ogni chiamata della funzione. Ma rimane con i caratteri dell'ultima parola poui lunga. Perchè? Non dovrebbe reinzializzarsi ad ogni chiamata? (Non sono esperto di C, quindi magari dico cose errate..)
Grazie a chi potrà spiegarmi perchè ciò accade.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Copia(char str[])
{
    int j; 
    int lungh;
    lungh = strlen(str);
    char newstring [lungh];
    
    for (j=0;j<lungh;j++)
        newstring[j]=str[j];
 
        printf("\n%s", newstring);
}
int main()
{  
    char testo[3][30]={"pistolero","aldo","mese"};
    for (int i=0;i<3;i++)
        Copia(testo[i]);
    
    return EXIT_SUCCESS;
}