Я хочу напечатать элементы массива, используя один printf
. Массив невелик (например, до 10 элементов), но каждый раз мне придется печатать различное количество первых элементов массива.Печать (часть) массива в одном printf в C
Я знаю, что могу это сделать:
count = how_many_first_elements_i_need_this_time();
printf("array elements: ");
for (i = 0; i < count; ++i)
printf("%d ", array[i]);
printf("\n");
Но это может привести к перемежения выходов нескольких printf
выполненных одновременно разными нитями, я полагаю.
Я могу написать огромный переключатель для обработки всех возможных случаев, но он уродлив.
Любые другие предложения?
Вы можете сконфигурировать свой вывод и отобразить его в конце – Alexis
«Но это может привести к чередованию выходов нескольких printf, выполняемых в то же время разными потоками, я полагаю». - да, и было бы иначе, если бы вы использовали только один вызов. Управление потоками игнорирует функциональные границы вызовов. –
Если цель очень проста, например, для ведения журнала, вы можете распечатать thread-id с элементом массива для отслеживания – VoidPointer