Transpor um array 2D
Como você transpõe eficientemente uma matriz? Existem bibliotecas para isso, ou qual algoritmo você usaria?
Por exemplo.:
short src[W*H] = {
{1,2,3},
{4,5,6}
};
short dest[W*H];
rotate_90_clockwise(dest,src,W,H); //<-- magic in here, no need for in-place
//dest is now:
{
{4, 1},
{5, 2},
{6, 3}
};
(No meu caso específico, sua matriz src é um dado de imagem bruta, e o destino é um framebuffer, e estou embutido no ARM em um conjunto de ferramentas que não suporta montagem)