Te sugiero que ejecutes la aplicacion en el depurador, parece magia pero te encuentra los errores :))
Antes de nada: para que conio.h? Si no vas a usar ninguna de sus funciones puedes ahorrartela, ademas no forma parte del estandar.
Prueba a bloquear memoria dinamica para el array; primero reservas las filas y para cada fila las columnas, algo asi:
Código C:
Ver originalint **arr = 0;//puntero nulo
*arr
= malloc(sizeof(int)*i
);//reservas memoria para 'i' filas for(j = 0; j < i; j++) {
arr
[j
] = malloc(sizeof(int)*i
);//para cada fila reservas memoria para 'i' columnas}
Puedes hacerlo de otras formas; si usas esta vas a acceder a las posiciones del array de forma:
Ya tienes el array listo, y lo envias tal cual a las funciones de inicio y populado.
Recuerda que para cada malloc necesitas un free, luego despues de usar el array tienes que liberar la memoria. En esta aplicacion no tiene sentido porque el s.o. se encargará de ello, pero tal vez en futuras aplicaciones tengas que reutilizar el array, ya sea para resetearlo o para redimensionarlo. En este caso la liberacion de memoria es el proceso inverso a la reserva: para cada fila liberas las columnas, y al final liberas las filas; algo asi:
Ya lo tienes. Revisa estas lineas para entender exactamente que hacen, y ante cualquier duda ya sabes donde preguntar.
Espero que te sirva de ayuda
Saludos
vosk