Como armazenar matrizes de bytes em C?

Parece uma pergunta tão básica, mas não consigo encontrar uma resposta em nenhum lugar no SO.

Eu sei que C / C ++ não tem umbyte tipo de dados. Eu sei dissosizeof(char) == 1.

Estou tentando armazenar 12 transmissões, cada uma com 96 bytes no Pebble, conforme transmitidas pelo meu aplicativo Android.

Devido à limitação no tamanho da transmissão, estou enviando um de cada vez. Cada um deve ser 'anexado' ao último, pois deve formar um espaço seqüencial na memória, para leitura como imagem (um bit por pixel).

Estou tentando fazer algo assim:

int transNum = 0;
uint8_t image[][] = new uint8t[12][12] //not sure about uint8_t, and I've forgotten how to do 'new' in C, I have to create just a pointer, and then malloc?

receivedHandler(DictionaryIterator *iter, void *context){
    Tuple *receivedImage = dict_find(iter, KEY_IMG);
    for (int i = 0; i < 12; i++) {
        image[transNum][i] =  receivedImage->value[i]->uint8_t;
    }
    transNum += 1; //this is in an implicit loop, since once done Pebble ACKs the transmission, and receivedHandler is called again by the next transmission
}

Estou perto remotamente?