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

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

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Вывод массива - C++

02.02.2010, 22:28. Просмотров 407. Ответов 8
Метки нет (Все метки)

Здрасти, имеется заголовочный файл "matrix.h", в котором создается двумерный массив:
C++
1
2
3
4
5
6
int** CreateMatrix(int count_row,int count_col){
    int** pArray=new int*[count_col];
    for (int i=0; i<count_col; i++)
    pArray[i]=new int[count_row];
    return pArray;
}
и имеется файл *.cpp, в котором этот массив заполняется и выводится:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    
    int count_row=0;
    int count_col=0;
    std::cout<<"Vvedite ramernost matrici: ";
    std::cin>>count_row>>count_col;
 
    int** pA=CreateMatrix(count_row,count_col);
    srand(time(NULL));
    for (int i=0; i<count_row; i++){
    for (int j=0; j<count_col; j++){
        pA[i][j]=rand()%7;
        std::cout<<pA[i][j];
    }
        std::cout<<std::endl;
    }

Когда вводиш размерность например 4 на 4, то все ок, а когда например 9 на 1 вылезает ошибка. В чем ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2010, 22:28     Вывод массива
Посмотрите здесь:

Открытые функции класса: ввод массива, вывод массива, определение длины вектора - C++
Данные класса: массив N(10). Открытые функции класса: ввод массива, вывод массива, определение длины вектора. Длина массива определяется...

Вывод массива - C++
Не могу вывести массив после нахождения суммы. Прошу помочь или подкиньте-ка идею) void c(int **m, int s, int r) { for (int...

вывод массива - C++
че тут не так? пишит что проблемма в строке cout &lt;&lt; arr.print &lt;&lt; endl; #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string&gt; ...

Вывод Массива - C++
Имеется код: #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; using namespace std; int zapolnenie(int a, int b, int e,...

Вывод массива - C++
Помогите пожалуйста написать программу которая выводит массив на ввиде k столбцов и оканчивается на n числе, заранее спасибо

Вывод массива! - C++
#include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string&gt; using namespace std; class...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
02.02.2010, 22:48     Вывод массива #2
CreateMatrix создает массив указателей а не двумерный массив. Использовать pA таким образом нельзя
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.02.2010, 22:52  [ТС]     Вывод массива #3
а как можно создать динам.массив в заголовочном файле и заполнить его в файле *.cpp???
insideone
Модератор
Автор FAQ
3638 / 916 / 49
Регистрация: 10.01.2010
Сообщений: 2,469
02.02.2010, 22:58     Вывод массива #4
Заголовочные файлы вообще то служат для объявления функций\классов\переменных а не для действий с ними, зачем с ними такое вытворять?)
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.02.2010, 23:01  [ТС]     Вывод массива #5
тоесть создавать массив лучше в *.cpp?
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
02.02.2010, 23:02     Вывод массива #6
Во, блин... Перепутал. Вы же его не в функцию передаете...
Вот подправил. У вас там столбцы со строками перепутаны были
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
int** CreateMatrix(int count_row,int count_col){
    int** pArray=new int*[count_row];
    for (int i=0; i<count_col; i++)
    pArray[i]=new int[count_row];
    return pArray;
}
 
 
int main(int argc, char* argv[])
{
    int count_row=0;
    int count_col=0;
    std::cout<<"Vvedite ramernost matrici: ";
    std::cin>>count_row>>count_col;
 
    int** pA=CreateMatrix(count_row,count_col);
    srand(time(NULL));
    for (int i=0; i<count_col; i++){
    for (int j=0; j<count_row; j++){
        pA[i][j]=rand()%7;
        std::cout<<pA[i][j];
    }
        std::cout<<std::endl;
    }
 
 
        getch();
    return 0;
}
Да какая разница, где его создавать....
У вас же просто ф-ция объявлена в h файле.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.02.2010, 23:15  [ТС]     Вывод массива #7
Зоти Сергей, такая же ошибка(( вот 4 и 4, 1 и 9 все работает, но когда вводиш 9 и 1 или тп то ошибка

Добавлено через 2 минуты
Цитата Сообщение от PointsEqual Посмотреть сообщение
Зоти Сергей, такая же ошибка(( вот 4 и 4, 1 и 9 все работает, но когда вводиш 9 и 1 или тп то ошибка
Извиняюсь все работет, перепутал столбцы с строками. спасибо

Добавлено через 1 минуту
Вот и я думаю, правильно что эту функцию в h файл запихнул, тк читал книжку и там было сказано функции желательно помещать в h файл
Зоти Сергей
228 / 226 / 13
Регистрация: 18.12.2009
Сообщений: 316
03.02.2010, 00:19     Вывод массива #8
В книжке имелось ввиду, наверное, то объявление функций происходит в h вайле.
Тоесть, чаще в h фалы помещают прототипы функций. А их реализацию в cpp.
В вашем случае
в .h
C++
1
int** CreateMatrix(int count_row,int count_col);
а в cpp
C++
1
2
3
4
5
6
7
int** CreateMatrix(int count_row,int count_col)
{
    int** pArray=new int*[count_row];
    for (int i=0; i<count_col; i++)
    pArray[i]=new int[count_row];
    return pArray;
}
Это не обязательно, но облегчает чтение программы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2010, 00:45     Вывод массива
Еще ссылки по теме:

Вывод массива - C++
Здрасти, помогите вывести массив: #include &lt;iostream&gt; #include &lt;conio.h&gt; int* CreateDoubleDynArray(unsigned int count_row,...

Вывод массива - C++
Привет всем, ребят, тут такое дело, я сделал прогу которая сортирует массив, прога содержит шаблон,...суть в том что при сортировке чисел...

Вывод массива. - C++
Программа работает, но код... запутаться можно. Есть ли способы попроще? Заранее спасибо. #include &lt;iostream&gt; #include &lt;ctime&gt; ...

Вывод элементов массива - C++
Написать программу на языке С, которая демонстрирует для вывода четырех элементов целочисленного массива b использование четырех методов...


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

Или воспользуйтесь поиском по форуму:
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
03.02.2010, 00:45  [ТС]     Вывод массива #9
точно
Yandex
Объявления
03.02.2010, 00:45     Вывод массива
Ответ Создать тему
Опции темы

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