Hola:
En principio esa es la forma correcta, debes hacer un malloc() por cada fila de la matriz. Sin embargo, puedes hacer una especie de "trampa". Consiste en hacer un array de 100 en tu caso y saber que las filas comienzan en fila*20 (es decir, posiciones 0, 20, 40, etc). La forma de acceder a fila,columna sería array[fila*20+columna]. Es una chapuza y salvo casos muy especiales no merece la pena hacerlo.
Se bueno.