A mio avviso c'era nel codice piu' di qualche errore....
1)L'errore di undefined reference e' relativo al fatto che alla funzione avevi dato il nome di inzializza e non inizializza....
2)Dichiari un puntatore int* e lo inizializzi correttamente alla prima cella della matrice ma quando effettui la chiamata alla funzione inizializza nel main devi passare sono mat e non *mat in quanto l'operatore unario * e' un operatore di dereferenziazione e consente di accedere al contenuto dell'elemento e tu invece devi passare un indirizzo ad un'area di memoria che e' appunto mat
3)Cerca di usare maggiore pulizia nel codice, usa le tabulazioni per le indentazioni e le graffe al termine della linea di codice e non all'inizio (ma e' solo un consiglio personale)
4)Enter (carrige return) e' rappresentato dal carattere \n e non \0 che e' il carattere di terminazione per le stringhe
Il codice gira e da un rapido sguardo sembra essere ok.... Realizza una funzione di stampa della matrice per il debug del codice....
#include <stdio.h>
#include <stdlib.h>
#define RIGHE 15
#define COLONNE 15
int matrice[RIGHE][COLONNE];
int *mat=&matrice[0][0];
void inizializza(int*);
/*Definizione delle funzioni*/
void inizializza(int *m){
int n, i, j;
srand(time(NULL));
for(i=0;i<RIGHE;i++)
for(j=0;j<COLONNE;j++){
n=rand() %101;
if (n<=50) *m=0;
else *m=1;
m++;
}
}
void main(){
char c;
/*Inizializzazione (random) dello scenario iniziale */
printf("Premere invio per iniziare:");
scanf("%c",&c);
if(c=='\n') inizializza(mat);
else
while(c!='\n'){
printf("\nInserimento non valido riprovare ");
fflush(stdin);
scanf("%c",&c);
if(c=='\n') inizializza(mat);
}
exit(EXIT_SUCCESS);
}