Я пытаюсь напечатать переменную в моем динамически выделенном массиве, но она возвращает неправильное значение.
Это объявление массива: int16_t *sample_vector = malloc (num_samples*sizeof(int16_t));
И попытка печати
sample_vector[i] = data_buffer[0] |
(data_buffer[1]<<8) |
(data_buffer[2]<<16)|
(data_buffer[3]<<24);
printf ("Sample vector [%ld]: %d\n", i, sample_vector [i]); //this works fine, it prints shows the real sample value
printf ("Sample vector [%ld]: %d\n", (i-1), sample_vector [i-1]); //this doesn't work, it prints garbage