¿Se puede inicializar una matriz bidimensional en C sin tamaño explícito?

Tengo una pregunta con respecto a las matrices bidimensionales en C. Ahora sé (por experiencia del compilador directo) que no puedo inicializar dicha matriz de forma análoga a matrices unidimensionales como esta:

int multi_array[][] = {
  {1,2,3,4,5},
  {10,20,30,40,50},
  {100,200,300,400,500}
};

> compiler output:

gcc -o arrays arrays.c
arrays.c: In function ‘main’:
arrays.c:8:9: error: array type has incomplete element type

La solución más cercana que funciona es proporcionar el número de columnas explícitamente así:

int multi_array[][5] = {
  {1,2,3,4,5},
  {10,20,30,40,50},
  {100,200,300,400,500}
};

Mi pregunta es: ¿se puede hacer bien?sin suministrando el número explícitamente (que, después de todo, el compilador debería poder inferirse a sí mismo)? No estoy hablando de construirlo manualmente conmalloc o algo más bien algo cercano a lo que intenté. Además, ¿alguien con conocimientos sobre compiladores de C puede explicar desde una perspectiva de bajo nivel por qué mi intento inicial no funciona?

Solía simplegcc sin opciones no estándar para compilar el código.

Gracias

Respuestas a la pregunta(5)

Su respuesta a la pregunta