static unsigned char db[] = { 0xDE, 0xAD, 0xBE, 0xEF }; static unsigned char buff[SOME_RANDOM_LENGTH]; int main() { int n = sizeof buff / sizeof db; unsigned char *ptr = buff; for ( ; n ; n--, ptr+=4 ) { memcpy( ptr, db, 4 ); } switch ( sizeof buff % sizeof db ) { case 3: ptr[2] = db[2]; case 2: ptr[1] = db[1]; case 1: ptr[0] = db[0]; break; } return 0; }