19.05.2008, 04:55
общий
это ответ
Здравствуйте, Nevill!
Для это в функцию необходимо передать адрес указателя, т.е. двойной указатель. Внутри функции мы выделяем память под массив и адрес начала выделенной памяти присваиваем разыменованному переданному двойному указателю. Примерный вариант такой операции смотрите в приложении.
Приложение:
void create_array(double** array, int length) { //Выеделям память под массив double *ptr = new double[length]; //Операции с созданным массивом for(int i=0; i<length; i++) ptr[i] = i; //Записываем адрес созданного массива в переданный параметр *array = ptr;}int main(int argc, char* argv[]) { double *a = NULL; create_array(&a, 10); delete[] a; return 0;}