Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

создание динамического массива внутри функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обратная матрица http://www.cyberforum.ru/cpp-beginners/thread658990.html
Привет, ребят) решите пожалуйста задачку в BC++ Для заданной матрицы A(m,n) найти обратную {A}^{-1} , используя интерационную формулу: {A}^{-1}_{k}={A}^{-1}_{k-1}*(2E-A*{A}^{-1}_{k-1}) , где E...
C++ Вывести на экран таблицу значения функции Нужна помощь, Вывести на экран таблицу значения функции Y(x) и ее разложения в ряд S(x) для х,изменяющегося от a до b с шагом h=(b-a)/10 http://www.cyberforum.ru/cpp-beginners/thread658984.html
C++ Создать рекурсивную функцию recursiveMinimum, которая возвращает наименьший элемент массива
Помогите решить Напишите рекурсивную функцию recursiveMinimum, которая принимает массив и размер массива как аргументы и возвращает наименьший элемент массива. Функция должна прекращать свою...
C++ задача методом крамера (как проверить вход данные с++)
Помогите пожалуста уже пробывал сделать ну чтото ничего не получаеться Т_Т #include "stdafx.h" #include <iostream> // подключения библитеки для cout endl using namespace std; // чтобы не писать...
C++ Разложить число на сумму степеней двойки http://www.cyberforum.ru/cpp-beginners/thread658902.html
помогите написать функцию, раскладывающую число на сумму степеней двойки. т.е. у меня есть 6 прав у пользователей, которые пронумерованы степенями двойки создание объекта 2 создание субъекта 4...
C++ Проверить упорядочены ли элементы вектора. Если нет, то упорядочить в порядке убывания методом стандартного обмена Дан вектор размерности N. Проверить упорядочены ли элементы вектора. Если нет, то упорядочить в порядке убывания методом стандартного обмена. подробнее

Показать сообщение отдельно
Elfenlide
23 / 23 / 1
Регистрация: 15.04.2012
Сообщений: 183
27.09.2012, 13:08
Цитата Сообщение от Владимир 1 Посмотреть сообщение
Люди, помогите пожалуйста.
.
Код :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void formimp (char *impulse,double *arr, int &n)
{   FILE *fp=0;
    fp=fopen(impulse,"rt+");
    int i=0; double h1,h2;
    while (!feof(fp))
        {   
            fscanf(fp,"%lf\t%lf\n",&h1,&h2);
            i++;
        }
    n=i; //число элементов в файле
    rewind (fp);
    i=0;
    arr=new double [n];
    while (!feof(fp))
    {   
        fscanf(fp,"%lf\t%lf\n",&h1,&arr[i]); // считывание файла в созданный массив
        i++;
    }
    fclose(fp);
}
Результат.
1. Отладчик видит, что массив arr содержит только один элемент.
2. Поэлементный вывод arr показывает, что весь массив заполнен значением первого элемента.
???????
P.S. Файл impulse - таблица из 2 столбцов, нужен только 2-ой.
функция должна возвращатьзначение типа массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void* formimp (char *impulse,double *arr, int &n) //тут вместо воид указываете тип массива и будет указатель, если вы хотите вернуть динамический масив, а точнее указатель на него.
{   FILE *fp=0;
    fp=fopen(impulse,"rt+");
    int i=0; double h1,h2;
    while (!feof(fp))
        {   
            fscanf(fp,"%lf\t%lf\n",&h1,&h2);
            i++;
        }
    n=i; //число элементов в файле
    rewind (fp);
    i=0;
    arr=new double [n];
    while (!feof(fp))
    {   
        fscanf(fp,"%lf\t%lf\n",&h1,&arr[i]); // считывание файла в созданный массив
        i++;
    }
    fclose(fp);
return ar[i];   //<- так вы возвращаете указатель на первый элемент массива.
}
а в main нужно создать новый массив динамический, который примет указатель на массив из функции.
примерно char *mas = new char; //естественно указываете тип массива такой какие значения он будет хранить.
mas = formimp (char *impulse,double *arr, int &n);
затем после работы нужно будет освободить память - > delete[]mas;
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru