Ho dedotto che non ho capito niente!!!
Siamo daccordo che questo programma funziona e mi stampa una matrice 10*10 piena di 3.


codice:
#include <stdio.h>
main()
{
    int matrice[10][10];
    int x, y;
    /* riempie la matrice */
    for(x=0;x<10;x++)
    {
        for(y=0;y<10;y++)
        {
            matrice[x][y]=3; /* assegna all'elemento x,y dell'array il valore x*y */
            printf("%d\t",matrice[x][y]);
        }
    
        
    }
    getch();
}
Ma facendo questo tentativo, viene la stessa cosa!!!!!

codice:

#include <stdio.h>
main()
{
    int matrice[1];
    int x, y;
    /* riempie la matrice */
    for(x=0;x<10;x++)
    {
        for(y=0;y<10;y++)
        {
            matrice[x]=3; /* assegna all'elemento x,y dell'array il valore x*y */
            printf("%d\t",matrice[x]);
        }
    
        
    }
    getch();
Come puo' avvenire lo stesso risultato, anche se ho completamente eliminato le colonne della matrice, ovvero il secodno termine di matrice [10][10]??
Mi viene da supporre che tutto dipenda dai due for.. siccome nei for ho lasciato 10*10, il risultato non cambia..
Ma allora dove vengono scritti i 3??
Non è dunque vero che esiste un vettore le cui celle punatno ad altri vettori e via dicendo...???!! Suppongo di no, dato che ho omesso questi vettori "puntati" dalle celle del vettore originario...