Я хочу присвоить что-нибудь такой переменной:

rtpArray[bn].ts06_timestamp = rtpArray[bn].timestamps_shm_ptr_aux[SCPAD_TS06];

Дело в том, что rtpArray[bn].ts06_timestamp это тип под названием utdc_samples, который больше, чем char, а rtpArray[bn].timestamps_shm_ptr_aux является массивом char.

У меня вопрос, это сработает?

0
Gonçalo Silva Santos 13 Май 2014 в 16:14

2 ответа

Лучший ответ

Если rtpArray[bn].timestamps_shm_ptr_aux является массивом символов, то rtpArray[bn].timestamps_shm_ptr_aux[SCPAD_TS06] является единственным значением char. Нет причин, по которым вы не можете присвоить это большему целочисленному типу.

1
davmac 13 Май 2014 в 12:31

В этом трудно быть уверенным, поскольку вы не показываете полные объявления, которые использует ваш код.

Вы выполняете индексацию с правой стороны, что означает, что результатом правильного размера является один символ, то есть небольшое целое число. Если предположить, что utdc_samples также является целочисленным типом, но больше, чем char, тогда с присвоением все в порядке.

0
unwind 13 Май 2014 в 12:35