С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.09.2014
Сообщений: 2
1

Неправильно выделяется память для массива

22.12.2016, 04:17. Показов 551. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
не правильно выделяется память для массива

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
double *CDispersia_SPMDlg::Function_Spectr(double * _y_noise, int yslovie,  double *_y_spectr)//ф-я Фурье спектра
{
    int overlap=size_window/2;//сдвиг окна с перекрытием
 
    double **y_spectr_wnd;
    y_spectr_wnd = new double *[N_fragmentation];
    for (int i = 0; i < N_fragmentation; i++)
    {
        y_spectr_wnd[i] = new double [size_window+1];
    }
 
    cmplx **cs_wnd;
    cs_wnd = new cmplx *[N_fragmentation];
    for (int i = 0; i < N_fragmentation; i++)
    {
        cs_wnd[i] = new cmplx [count+1];
    }
 
    double *_noise = new double [count]; 
    cmplx *cs = new cmplx [count+size_window];
 
 
    for (int i = 0; i<count; i++)
    {
        _noise[i] = 0;
    }
    for (int i = 0; i<size_window; i++)
    {
        cs[i].real = 0;
        cs[i].image = 0;
    }
    for(int i=0;i<size_window;i++)
    {
        _y_spectr[i]=0;
    }
/////////////////////////////////////////////
 
    if (yslovie == 2)//строим спектр от треугольного
    {
        Triangle_Window(y_window);
    }
    else
    {
        Rectangular_Window(y_window);
    }
 
 
 
    for (int i = 0; i < count;i+=size_window)
    {
        for (int j = 0 ; j < size_window; j++)
        {
            _noise[i+j] = _y_noise[i+j] * y_window[j];      //перемножение сигнала с окном
        }
    }
 
//          // вывод в файл значений 
//          FILE *f4=fopen("masssss.txt", "wt");
//          fprintf(f4,"\t точки _mas: \n\n");
//          for (int i = 0; i<=size_window; i++)
//          {
//              double x = i+1;
//              fprintf(f4, "№ %2.5f : %2.4f\n",x,y_window[i]);
//          }
//          fclose(f4);
 
    for (int i = 0; i<count; i++)
    {
        cs[i].real = _noise[i];
        cs[i].image = 0;
    }
 
    for(int i = 0; i<N_fragmentation; i++)
    {
        for(int j=i*size_window;j<i*size_window+size_window;j++)
            {
                for(int k=0;k<size_window;k++)
                {
                cs_wnd[i][k].real=cs[j].real;
                cs_wnd[i][k].image=0;
                }
                for (int k=size_window;k<count;k++)
                {
                cs_wnd[i][k].real=0;
                cs_wnd[i][k].image=0;
                }
            }
            
        
        
 
        fourea(cs_wnd[i], count,-1);//прямое фурье преобразование
 
        for (int j=0; j<count; j++)
        {
            y_spectr_wnd[i][j] = sqrt(pow(cs_wnd[i][j].real,2)+pow(cs_wnd[i][j].image,2));  //получение спектров 
        }
 
    }
 
    //Усреднение спектров
    int j=0,k=0;
    while( j<size_window, k<size_window)
    {
        double a=0;
        for(int z=0;z<N_fragmentation;z++)
        {
            a+=y_spectr_wnd[z][k];
        }
        _y_spectr[j]=a/N_fragmentation;
 
        j++;k++;
    }
 
 
    //удаляем массив
    //for (int j=0; j < N_fragmentation; j++)
    //{
        //delete []y_spectr_wnd[j];
    //delete [] y_spectr_wnd;
    //}
    delete []y_spectr_wnd;
 
    //удаляем массив
    ////for (int j=0; j < N_fragmentation; j++)
    //{
        //delete []cs_wnd[j];
    //}
    delete []cs_wnd;
 
    delete []_noise;
    delete []cs;
 
    
    return _y_spectr;//возвращаем усредненный спектр
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2016, 04:17
Ответы с готовыми решениями:

Выделяется ли память для ссылки?
Добрый день есть код: char a = 'd'; char *ptr = &amp;a; char &amp;link = a; Вопрос в том, что такое...

Какую структуру имеет память, которая выделяется для работы программы на С++
Какую структуру имеет память которая выделяется для роботы программы на С++?

Если память для объекта выделяется динамически (строка 33), сортировка sort не работает
Если память для объекта выделяется динамически (строка 33), сортировка sort не работает, если...

Где выделяется память для возвращаемого значения функций?
Собственно возник вопрос, корректен ли такой код: есть некая функция, которая возвращает объект...

1
Модератор
Эксперт С++
13721 / 10918 / 6478
Регистрация: 18.12.2011
Сообщений: 29,147
22.12.2016, 07:21 2
Попробуйте воспользоваться отладчиком
Как пользоваться отладчиком (в Visual Studio)
0
22.12.2016, 07:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2016, 07:21
Помогаю со студенческими работами здесь

Выделяется ли память?
Доброе время суток! У меня есть BYTE *pOutData = NULL; Объясните пожалуйста что происходит в...

Не выделяется память
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; using namespace std; class DynArray {...

Не выделяется память
#ifndef _STUDENT_ #define _STUDENT_ namespace Schools { class Student { public:...

Не выделяется память
Здравствуйте, пытаюсь выделить память, на одном компьютере работает, на другом нет, возвращает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru