День добрый.
Мучаюсь уже который час. Есть структура:
struct __data {
int msg;
char key[32];
time_t timestamp;
unsigned long data_crc32;
void *data_bin;
};
Далее, есть функция, которая с ней работает:
...
struct __data data;
memset(&data, 0, sizeof(struct __data));
data.msg = msg;
memcpy(data.key, secret_key, 32);
data.data_bin = rsp;
data.timestamp = CURRENT_TIMESTAMP;
data.data_crc32 = crc32(0, rsp, rsp_size);
...
...
strlen(secret_key) = 32
strlen(data.key) = 49
Флаги сборки: -g -Wall -Wstrict-prototypes
Вопрос: КАК, ПОЧЕМУ, откуда там 49 ? О_о
Если добавить -O2, то там уже не 49, а 51!
Компилятор:
$clang --version
clang version 3.1 (branches/release_31)
Target: i386-pc-linux-gnu
Thread model: posix
UPD
C GCC 4.7.2, и с -O2: 65, и без -O2, 51.