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

Передача двумерного массива в конструктор класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать одномерный массив из 50 элементов вещественного типа http://www.cyberforum.ru/cpp-beginners/thread1719757.html
Расчет по формуле считается не правильно. Что не так ? Помогите исправить , кого это не затруднит , пожалуйста. a) Сгенерировать одномерный массив из 40 элементов целого типа в диапазоне ; b) Отсортировать массив по убыванию значений элементов методом выбора. с) Сформировать одномерный массив из 50 элементов вещественного типа x=sin(i/8) , i=1, 2, ..., 50. d) Отсортировать массив по...
C++ нужно переделать код системы счисления с делфи на с++ 2 часть PROCEDURE TForm1.BIN_to_OCT(const n:string;Sender: TObject); var st1,st2,tmp,tmp2:string; flag:arrayof boolean; d,j:byte; BEGIN if flag_clear then memo1.Lines.Clear; memo1.Lines.Add(' ПЕРЕВОД ЧИСЛА '+n+#13#10+'ИЗ 2-й В 8-ую СИСТЕМУ СЧИСЕНИЯ'); memo1.Lines.Add(''); memo1.Lines.Add('Чтобы перевести число из двоичной системы счисления '+ http://www.cyberforum.ru/cpp-beginners/thread1719748.html
C++ Переделать код системы счисления с Delphi на C++
const cod:arrayof char= ('0','1','2','3','4','5','6','7','8','9','A','B','C','D', 'E','F'); cod2:arrayof string= ('000','001','010','011','100','101','110','111'); cod3:arrayof string= ('0000','0001','0010','0011','0100','0101','0110','0111', '1000','1001','1010','1011','1100','1101','1110','1111');
C++ Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
Ребят, умоляю помогите. Незнаю что я опять делаю не так, но выдает такую ошибку. В общем задание такое: Работа с бинарными файлами. Матрица целых чисел записана по строкам в файл. Не используя нового файла, удалить нулевые строки матрицы из исходного файла. Вот код: #include <iostream> #include <conio.h> #include <fstream> #include <vector> using namespace std;
C++ Второй отрицательный элемент заменить минимальным http://www.cyberforum.ru/cpp-beginners/thread1719737.html
Здравствуйте)Помогите пожалуйста, запуталась(Нужно заменить именно второй элемент. Например: -10,9,-2,3. (в примере заменится -2 на -10). Минимальное уже найдено в функции. Измените функцию void z1. #include<iostream> using namespace std; int input()//Ввод размера массива { int n; cout<<"Введите размер массива:";
C++ Вытягивание текущего уровня звука в TrackBar Как мне реализовать на форме взятие текущего уровня звука (чтобы при открытии формы бегунок Trackbar'а уже находился не на нуле, а отображал уровень звука)? подробнее

Показать сообщение отдельно
meJevin
155 / 147 / 58
Регистрация: 18.11.2015
Сообщений: 644
Завершенные тесты: 1
24.04.2016, 17:25     Передача двумерного массива в конструктор класса
По-моему, матрица - указатель на указатели. Типа, ты делаешь указатель на указатели, а каждый из тех указателей указывает на блок в памяти, который выделен под определенную строчку. А у тебя
Цитата Сообщение от IAlexey Посмотреть сообщение
int* xA
просто указатель на строчку, грубо говоря.

Добавлено через 1 минуту
То есть, если ты хочешь передать матрицу, то как-то так надо Matrix::Matrix(int xn, int** xA), где xn - размер (а он нужен один, потому что у тебя квадратная матрица), а xA - указатель на указатели (а те указатели указывают на строчки).

Добавлено через 1 минуту
Хотя, я и сам могу ошибаться.

Добавлено через 7 минут
А, у тебя статическая матрица, тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const int size = 3;
 
void fill(int matrixSize, int matrix[][size]) {
    for (int i = 0; i < matrixSize; i++) {
        for (int j = 0; j < matrixSize; j++)
            matrix[i][j] = 5;
    }
}
 
int main() {
 
    int matrix[size][size];
 
    fill(size, matrix);
 
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++)
            std::cout << matrix[i][j] << " ";
        std::cout << "\n";
    }
 
    _getch();
}
Добавлено через 4 минуты
Но ты там пишешь
Цитата Сообщение от IAlexey Посмотреть сообщение
cout << "\nРазмер матрицы n = ";
cin >> xn;
Это значит, что она динамическая. Тогда так будет:
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
void fill(int matrixSize, int** matrix) {
    for (int i = 0; i < matrixSize; i++) {
        for (int j = 0; j < matrixSize; j++)
            matrix[i][j] = 5;
    }
}
 
int main() {
    setlocale(LC_ALL, "");
 
    int N;
    std::cout << "Введите размер: ";
    std::cin >> N;
 
    int** matrix = new int*[N];
    for (int i = 0; i < N; i++)
        matrix[i] = new int[N];
 
    fill(N, matrix);
 
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++)
            std::cout << matrix[i][j] << " ";
        std::cout << "\n";
    }
 
    _getch();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru