Come da titolo, se io devo dichiare una matrice e quindi allocarne lo spazio, come faccio se non conosco il numero di righe?

Sono sempre stato convinto di poter fare

codice:
int righe=0;
char matrix[righe+1][N];
Però ho scoperto che così non funziona bene. Se conosco un numero massimo di righe che verranno utilizzate il problema non si pone, mi basta usare quel numero, ma se non ho la minima idea del numero max di righe come posso fare?
Grazie