Консультация № 137137
16.05.2008, 20:32
0.00 руб.
0 1 1
Здравствуйте, подскажите пожалуйста, как написать функцию для создания динамического одномерного массива чисел, чтобы полученный массив можно было вернуть через параметры функции, какой указатель double* mas передавать ф-ии?
p.s. программа для BC++3.1 Заранее благодарю

Приложение:
//LEN - длина дин массиваSHELL::SHELL(unsigned long LEN, double* mas);

Обсуждение

Неизвестный
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;}
Форма ответа