Salve a tutti, sto scrivendo questo piccolo programmino che mi serve da test per un programma più grande che devo svolgere. In pratica mi creo una matrice di interi, la inizializzo con tutti 0, e poi mi credo due interi random che funzionano da indici per aggiornare una cella della matrice impostando il valore 1 (anzichè 0)
Il programma mi sembra senza errori, e in realtà funziona tutto bene...l'unico problema sono i valori che assume la struct indici quando "vado a capo" della matrice..a spiegare sembra complicato ma con un semplice run del programma ci si rende subito conto dei valori inattesi. Il problema è che l'importanza fondamentale del programmino è proprio ritornarmi in modo corretto i due interi della struct indici.
Questo è il codice:

codice:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>  
#define S 10
#define K 15

struct indici {

  int primo;
  int secondo;

};

typedef struct indici *TipoIndici;

void printMatrix(int matrix[S][K]){

 int i,j;
  for(i=0;i<S;i++){
    for(j=0;j<K;j++){
      printf("%d ",matrix[i][j]);
    }
    printf("\n");
    }
}

TipoIndici insertMatrix(int matrix[S][K],int rand1,int rand2){
  TipoIndici z;
  int i,j,inserito=0;
  for (i=rand1;i<S && inserito==0;i++){
    for(j=rand2;i<K && inserito==0;j++){
      if(matrix[i][j]==0){
	matrix[i][j]=1;
	inserito=1;
        z = malloc(sizeof(struct indici));
        z->primo=i;
        z->secondo=j;
      }
    }
  }
  return z;
}

int main ()
{
  TipoIndici z;
  int mat[S][K];
  int i,j;
  for(i=0;i<S;i++){
    for(j=0;j<K;j++){
      mat[i][j]=0;
      printf("%d ",mat[i][j]);
    }
    printf("\n");
    }

  int n1,n2,count=0;
  do{
  srand((unsigned)time(NULL));
  n1 = rand() % S;
  srand((unsigned)time(NULL));
  n2 = rand() % K;
  printf("\nNumeri Random: %d %d\n",n1,n2);

  z=insertMatrix(mat,n1,n2);
  printf("Matrice:\n");
  printMatrix(mat);
  printf("Indici Funzione: %d %d\n",z->primo,z->secondo);
  count++;
  }while(count<15);
  return 0;
}
Spero che qualcuno possa dirmi dove sbaglio!
Grazie mille!