How to save strings into an array of char pointers in C? : <p>I have to save Strings readen by command line and save them into a pointer array. The problem is that when I save the strings in their respective array [x][y] it seems that after every update on a [x][y] it affects the whole array.
I used some printf to see the state of the array after each udpate and always prints the last value added instead of the previous that should be in the array.
Can someone point me the problem please?</p>

<pre><code>char *NFAtab[STATES][SYMBOLS];
void init_NFA_table()
{
    char input[STATES+1];
    int index;
    int state;

    DFA_states = 0;
    N_symbols = 2;

    printf("FUNCIONAMENT:\n No hi ha límit d'estats, però es necessari que els estats comencin per l'estat 0.\n Només s'accepten transicions amb a i b.\n");
    printf("Introdueix nombre d'estats:");
    scanf("%d", &amp;NFA_states);
    printf("--------------------------------------------\n");

    printf("Introdueix transicions per cada estat per la 'a' (forma d'introducció: estatestat, sense espaiat; exemple: si va al estat 1 i al 2: 12 | si no hi ha transició '.')\n ------------------------------------------\n");
    int i;
    for (i = 0; i &lt; NFA_states; i++){
        printf("ESTAT %d: ", i);
        scanf("%s", input);
        if (strcmp(input, ".") == 0){
            NFAtab[i][0] = "";
        } else {
            NFAtab[i][0] = input;
            printf("%s\n", NFAtab[i][0]);
        }

        if (i&gt;0){
            printf("%s\n", NFAtab[i-1][0]);
        }
    }

    printf("Introdueix transicions per cada estat per la 'b' (forma d'introducció: estatestat, sense espaiat; exemple: si va al estat 1 i al 2: 12 | si no hi ha transició '.')\n ------------------------------------------\n");
    int x;
    for (x = 0; x &lt; NFA_states; x++){
        printf("ESTAT %d: ", x);
        scanf("%s", input);
        if (strcmp(input, ".") == 0){
            NFAtab[x][1] = "";
        } else {
            NFAtab[x][1] = input;
            printf("%s\n", NFAtab[x][1]);
        }

        if (x &gt; 0){
            printf("%s\n", NFAtab[x-1][1]);
        }
    }

    for (x = 0; x &lt; NFA_states; x++){
        for (i = 0; i &lt; N_symbols; i++){
            printf("ESTAT: %d | SIMBOL: %d : %s\n", x, i, NFAtab[x][i]);
        }
    }
</code></pre>
