analizer 09.10.2011 11:15 mcabber

Есть сишная функция (вернее, прототип сишный, а внутрях всё ок). Функция возвращает некий список объектов. Как сделать возвращение списка и его длины покрасивше? У меня вот два варианта:
1. Возвращать NULL-terminated список указателей на объекты (которые располагаются в том же куске аллоцированной памяти). Большинству подойдёт хотя бы потому, что итерировать по нему удобно, и можно в одной строчке и объявить переменную со списком, и значение ей присвоить. Однако зело смущает меня то что для доступа к объектам целых два dereferencing'а придётся делать.
2. По старинке: использовать два output параметра, один под массив объектов, другой — под длину. Только один дереференсинг + экономится length * sizeof(void*) байт при аллокации. Однако теряется красота и грациозность.

Пстащ, может подкинешь ещё плюсов и минусов к каждому из этих способов?

1. DZhon 09.10.2011 11:31

Если этим будет пользоваться кто-то еще, то однозначно второе.

Do you really want to delete ?