voglio eseguire la matrice trasposta con un unico ciclo for come nell'esempio sottostante...
quando vado a stampare il primo indirizzamento per righe riesce a stamparmi l'indice i 0,1,2,3 ecc.. mentre il secondo indirizzamento per colonne mi stampa l'indice sempre 0,0,0,0 ecc...sapete il perchè?
for(i=0;i<n;i++)
{
*(mat+0*n+i)=i;
*(mat+i*n+0)=i; <-------non funzionante
}

codice:
 #include <stdio.h>
#include <stdlib.h>

void costr_mat(int mat[9][9],int n);
void visualizza(int mat[9][9],int n);
void vedi_nodo(int mat[9][9],int n);
int main()
{
    int *mat;
    int n;
    int i,j;
    int scelta;

    printf("Inserisci la grandezza della tabella (MAX 8) = ");
    scanf("%d",&n);
    n++;
    mat=calloc(n,sizeof(int));
    /* Metto i nodi */
    for(i=0;i<n;i++)
    {
        *(mat+0*n+i)=i;
        *(mat+i*n+0)=i;
    }
    costr_mat(mat,n);
    printf("\nLa Prima riga e la Prima colonna visualizzano i nodi creati, nodo 0 non esiste\n\n");
    do
    {
        printf("\n\n");
        printf("0 - Esci\n");
        printf("1 - Vedi info nodo\n");
        printf("2 - Visualizza MATRICE\n");
        scanf("%d",&scelta);
        printf("\n\n");
        switch(scelta)
        {
            case 0:
                    printf("Grazie per aver usufruito del nostro programma\n\n");
                    break;
            case 1:
                    vedi_nodo(mat,n);
                    break;
            case 2:
                    visualizza(mat,n);
                    break;
        }
    }while(scelta != 0);
system("pause");
}
void costr_mat(int mat[9][9],int n)
{
    int i,j;
    printf("Inserisci gli elementi, 1 e 0\n");

    for(i=1;i<n;i++)
    {
        for(j=i;j<n;j++) /* Inserisco dalla diagonale in su (triangolo superiore) */
        {
            printf("mat[%d][%d] = ",i,j);
            scanf("%d",&mat[i][j]);
        }
    }
}
void vedi_nodo(int mat[9][9],int n)
{
    int i,j,cont=0;

    printf("\nQuale nodo preferisci visualizzare le informazioni? ");
    scanf("%d",&i); /* Controllo sulla riga */

        for(j=1;j<n;j++)
             if(mat[i][j] == 1) /* Conto quante connessioni ci sono */
                  cont++;
    printf("\nIl nodo e' collegato con %d nodi\n\n",cont);
}
void visualizza(int mat[9][9],int n)
{
    int i,j;
    printf("\nEcco la matrice\n");
    for(i=0;i<n;i++)
    {
        printf("\n");
        for(j=0;j<n;j++)
            printf("%d ",mat[i][j]);
    }

}