С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

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

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

19.02.2011, 13:32. Просмотров 1185. Ответов 5
Метки нет (Все метки)

Подскажите, есть 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
я так понимаю нужно сделать указатель на этот массив, подскажите как.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2011, 13:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос описание массивов (C++):

Описание класса: определение одномерных массивов - C++
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

Составить описание класса одномерных массивов строк - C++
Составить описание класса одномерных массивов строк,каждая строка которых задается длиной и указателем на выделенную для нее память....

Составить описание класса одномерных массивов строк - C++
Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память. Предусмотреть...

Составить описание класса для определения одномерных массивов - C++
напишите пжлста програмку:

Описание класса для определения одномерных массивов строк. Исправить ошибку - C++
Программа иногда работает правильно а иногда вылетает с ошибкой Unhandled exception at 0x009C12F8 in HelloWorld.exe: 0xC0000005: Access...

Описание класса для определения одномерных массивов строк фиксированной длины - C++
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

5
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
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
0
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 файлах чтобы это было...
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
19.02.2011, 16:25 #4
Вы передаете в функцию значение, затем меняете его. При выходе из функции оно не изменится. Т.о.
C++
1
n = new double [iNum_x];
есть лик памяти, после выхода из функции значение n не изменится и указатель на эту выделенную область памяти будет просто утерян..
0
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];
то он уже не содержит старые значения, так как быть?
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
19.02.2011, 16:47 #6
Пересмотреть алгоритм и функции, НЕ задавать параметрам функции значений внутри функции, если эти параметры не передаются по ссылке (С++ only).

Например, можно выделять память под n в основной программе, а в функции этого не делать.
1
19.02.2011, 16:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2011, 16:47
Привет! Вот еще темы с ответами:

Пытаюсь создать описание класса одномерных массивов строк. В чем моя ошибка? - C++
Помогите пожалуйста! Пытаюсь создать описание класса одномерных массивов строк. В чем моя ошибка? #include &lt;iostream&gt; #include...

Составить описание класса для определения одномерных массивов целых чисел (векторов) - C++
Здравствуйте, уважаемые программисты! Не так давно я начал изучать язык С++. Есть задание: Составить описание класса для определения...

Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память - C++
Реализация системы классов для работы с одномерными массивами строк.Составить описание класса одномерных массивов строк, каждая строка...

Где пишется описание для выходного файла .exe (например описание процесса) - C++
Консольный проект, скомпилировали, получили exe. Жмем правой кнопкой на нем\свойства\вкладка подробно, почти все описание exe файла...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.