Загвоздка заключается в том, что нельзя использовать средства C++. new/vector — не подойдут.
Пример:
#include <malloc.h>
struct S //Структура
{
int i,j;
};
void func(S*);
int main()
{
S* sss; //Заводим указатель на структуру, но на самом деле мы хотим получить динамический массив
sss = (S *)calloc(10, sizeof( S ) ); //Выделили память под 10 элементов (на самом деле,
//это нужно, чтоб компилятор не ругался на использование
//переменной без присвоения ей значения)
func(sss);
//... Если тут посмотреть на значение в ячейке sss[85].i, то оно, почему-то, не будет равно 20.
return 0;
}
void func(S* sss)
{
free(sss); //Очистили память
sss = (S *)calloc(100, sizeof( S ) ); //Выделили память под 100 элементов
sss[85].i=20; // Заносим в 85-ый элемент некое число.
}