То что вы хотели в самом начале делается через линейный динамический массив и приведение типа указателей к многомерному массиву.
C++ (Qt)
float *data = new float[row * col];
float **pdata = (float**) &data;
for (int r = 0; r < row; r++) {
for (int c = 0; c < col; c++)
pdata[r][c] = r + c;
}
QMap<QString, float**> map;
map["mydata"] = pdata;
float **ppdata = map["mydata"];
// memcpy(..., data, ...)
PS:
Я думал что засовывая массив в словарь туда записывается вся память выделена под массива, а туда записывается только указатель на массив
не доглядел про это условие