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

описание массивов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
19.02.2011, 13:32     описание массивов #1
Подскажите, есть 2 cpp файла

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Raschet(int **const iMatrix, double *n, const int iNum_x, const int iNum_y)
{
        int s;
    n = new double [iNum_x];
    for (int j=0; j<iNum_x; j++)
    {
        s=0;
        for (int i=0; i<iNum_y; i++)
        {
            s=iMatrix[i][j]+s;
        }
        n[j] = s/iNum_y;
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
void Rezult(double *n, const int iRazmer_x)
{
    using namespace std;
    cout << "Matrix elements:" << endl;
    for (int j=0; j<iRazmer_x; j++)
    {
        cout.width(3);
        cout << n[j];
        cout << '\n';
    }
}
в главном файле их вызов идет друг за другом

Вопрос: на этой строке cout << n[j]; выдает ошибку violation accsess
я так понимаю нужно сделать указатель на этот массив, подскажите как.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2011, 13:32     описание массивов
Посмотрите здесь:

Описание класса: определение одномерных массивов C++
Описание класса для определения одномерных массивов строк фиксированной длины C++
Составить описание класса одномерных массивов строк C++
C++ Составить описание класса для определения одномерных массивов
Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память C++
C++ Где пишется описание для выходного файла .exe (например описание процесса)
Пытаюсь создать описание класса одномерных массивов строк. В чем моя ошибка? C++
Описание класса для определения одномерных массивов строк. Исправить ошибку C++
В каждом из массивов найти наибольшее значение и умножить на него все элементы массивов C++
В каждом из заданных массивов найти наибольшее значение, и разделить на него все элементы массивов C++
Создать массив структур без использования массивов и нотации массивов C++
C++ Составить описание класса одномерных массивов строк

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2913 / 1342 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.02.2011, 14:18     описание массивов #2
C++
1
2
3
4
5
int **matrix = NULL;
int *array = NULL;
Raschet(matrix, array, 0, 0);
printf("%s\n" ((array == NULL)  ? "Yes" : "No"));
// sad, but true
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
19.02.2011, 15:17  [ТС]     описание массивов #3
Цитата Сообщение от lemegeton Посмотреть сообщение
C++
1
2
3
4
5
int **matrix = NULL;
int *array = NULL;
Raschet(matrix, array, 0, 0);
printf("%s\n" ((array == NULL)  ? "Yes" : "No"));
// sad, but true
//mb you can make it easier?

просто какую то строчку дописать в моем примере?

Добавлено через 19 минут
просто мне нужно именно в 2 файлах чтобы это было...
lemegeton
 Аватар для lemegeton
2913 / 1342 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.02.2011, 16:25     описание массивов #4
Вы передаете в функцию значение, затем меняете его. При выходе из функции оно не изменится. Т.о.
C++
1
n = new double [iNum_x];
есть лик памяти, после выхода из функции значение n не изменится и указатель на эту выделенную область памяти будет просто утерян..
fen1ksss
2 / 2 / 0
Регистрация: 16.09.2010
Сообщений: 71
19.02.2011, 16:41  [ТС]     описание массивов #5
Цитата Сообщение от lemegeton Посмотреть сообщение
Вы передаете в функцию значение, затем меняете его. При выходе из функции оно не изменится. Т.о.
C++
1
n = new double [iNum_x];
есть лик памяти, после выхода из функции значение n не изменится и указатель на эту выделенную область памяти будет просто утерян..
а если заново описывать в другом cpp
n = new double [iNum_x];
то он уже не содержит старые значения, так как быть?
lemegeton
 Аватар для lemegeton
2913 / 1342 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.02.2011, 16:47     описание массивов #6
Пересмотреть алгоритм и функции, НЕ задавать параметрам функции значений внутри функции, если эти параметры не передаются по ссылке (С++ only).

Например, можно выделять память под n в основной программе, а в функции этого не делать.
Yandex
Объявления
19.02.2011, 16:47     описание массивов
Ответ Создать тему
Опции темы

Текущее время: 01:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru