hallo,
ja, das geht mit memcpy:
http://www.cplusplus.com/reference/cstring/memcpy/

void * memcpy ( void * destination, const void * source, size_t num );


der char array ist ja bereits ein pointer,
für die Variable reg musst du dann ihre Adresse &reg einsetzen.


wenn destination der array ist, und du an pos. 0 des arrays einfügen willst, hieße es
uint32_t reg;
char destination[8];

memcpy ( destination, &reg , sizeof(reg) );

willst du dies 4 Stellen weiter machen, dann

memcpy ( destination+4*sizeof(char), &reg , sizeof(reg) );
da sizeof(char) = 1 ist, vereinfacht
memcpy ( destination+4, &reg , sizeof(reg) );



oder wenn dein array noch größer als 8 wäre, z.B. für 20 Stellen weiter:

char destination[100];
memcpy ( destination+20, &reg , sizeof(reg) );


oder allgemein

memcpy ( destination+charpos, &reg , sizeof(reg) );