Почему буфер L пуст?
size_t bL = 55;
char L[4];
L[0] = (bL >> 24) & 0xFF;
L[1] = (bL >> 16) & 0xFF;
L[2] = (bL >> 8) & 0xFF;
L[3] = bL & 0xFF;
printf("%x %x %x %x", L[0], L[1], L[2], L[3]); // 0 0 0 37
printf(" strlen(L) = %i\n", strlen(L)); // strlen(L) = 0