Re: Элементрарный вопрос. Как возвращать массив из функции
От: ku12345  
Дата: 13.07.05 11:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>У меня есть функия в DLL, возвращающая некий массив. Так как до вызова этой функции размер неизвестен, а надо возвращать float*, то я завожу некий статический буфер максимального размера, заполняю его, возвращаю указатель на него и размер.


А>ПРОБЛЕМЫ — пользователь запомининает этот указатель, а после вызова этой функции в другой раз эти данные затираются.

А>Еще проблема — многопоточность — этим все сказано

А>Так вот вопрос — как поэлегантнее возвращать массив, чтобы память выделялась и освобождалась в DLL и не было вышеуказанных проблем.

А>STL не предлагать

А>СПАСИБО

Принимай в качестве параметра функции указатель на внешний объект(класс типа связанного списка, СObjList экземпляр например в MFC), внутри работай с ним, типа Add|Remove item-s,
потом возвращай указатель на этот же объект. Если ни MFC ни STL, то сделай сам связный список из объектов и делай там те же ADD|Remove — ...После этого ты на время пребывания внутри функции делаешь с таким динамическим массивом что угодно, пользователь отдыхает, так как для него будет доступен только указатель на список полностью контролируемый тобой. Что захочешь то и нафасуешь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.