Как это организовать? Может ли функция возвращать массив и иметь запись например return *A (т. е. с указателем)
В гл функции этот массив имеет двойной указатель. Какой вид будет иметь вызов типизированной функции.
Например в мейне : **A=sort2(&A[0][0],m,n);
Верно?
Другие языки программирования и технологии
Помогите с Си. Вопрос по заданию (насчет типизированной функции, которая должна возвращать массив)
#include <iostream>
#include <iomanip>
using namespace std;
int** matrix(int = 5, int = 8);
void print(int**, int = 5, int = 8, streamsize = 3);
void destroy(int**, int = 5);
int main() {
int** ptr = NULL;
if (ptr = matrix()) {
print(ptr);
destroy(ptr);
ptr = NULL;
}
else cout << "\a Error!\n";
cin.get();
}
void print(int** mx, int rw, int cl, streamsize w) {
for (int r = 0; r < rw; ++r, cout << "\n") for (int c = 0; c < cl; ++c) cout << setw(w) << mx[r][c];
cout << "\n";
}
void destroy(int** mx, int rw) {
if (mx && rw) {
for (int r = 0; r < rw; ++r) delete[] mx[r];
delete[] mx;
}
}
int** matrix(int rw, int cl) {
int** ptr = NULL;
int n = 0;
if (ptr = new (nothrow) int*[rw]) {
for (int r = 0; r < rw; ++r) {
if (ptr[r] = new (nothrow) int[cl]) for (int c = 0; c < cl; ++c) ptr[r][c] = ++n;
else {
for (int c = 0; c < r; ++c) delete[] ptr[c];
delete[] ptr;
ptr = NULL;
break;
}
}
}
return ptr;
}
#include <iomanip>
using namespace std;
int** matrix(int = 5, int = 8);
void print(int**, int = 5, int = 8, streamsize = 3);
void destroy(int**, int = 5);
int main() {
int** ptr = NULL;
if (ptr = matrix()) {
print(ptr);
destroy(ptr);
ptr = NULL;
}
else cout << "\a Error!\n";
cin.get();
}
void print(int** mx, int rw, int cl, streamsize w) {
for (int r = 0; r < rw; ++r, cout << "\n") for (int c = 0; c < cl; ++c) cout << setw(w) << mx[r][c];
cout << "\n";
}
void destroy(int** mx, int rw) {
if (mx && rw) {
for (int r = 0; r < rw; ++r) delete[] mx[r];
delete[] mx;
}
}
int** matrix(int rw, int cl) {
int** ptr = NULL;
int n = 0;
if (ptr = new (nothrow) int*[rw]) {
for (int r = 0; r < rw; ++r) {
if (ptr[r] = new (nothrow) int[cl]) for (int c = 0; c < cl; ++c) ptr[r][c] = ++n;
else {
for (int c = 0; c < r; ++c) delete[] ptr[c];
delete[] ptr;
ptr = NULL;
break;
}
}
}
return ptr;
}
Все в кучу. 1) В STL sort определяется как void, не нужно ничего возвращать, если ты структуру модифицируешь. 2) К чему относится = или ++,правильно, это оно называется оператор, он может данные копировать целиком в существующий контейнер или указатели замещать и относится к *A, т. е. в классе A должно определяться, а там смотря что за массив.
Похожие вопросы
- В чем разница между функциями, которые возвращают значения и которые не возвращают? Не вникаю в смысл слова "возвращает"
- Создать функцию которая находит одинаковЫе єлементы в 2 массивах та использовать их для обработки рядов матрици.
- Си. Программа читает файл txt и заполняет находящимися там числами массив, но
- Написать программу, которая формирует два массива чисел
- Помогите с информатикой. Вопрос по С++: написание функций с помощью void
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Напишите функцию, которая возвращает среднее арифметическое целых чисел i, j,k,m
- Создать функцию которая находит одинаковЫе єлементы в 2 массивах та использовать их для обработки рядов матрици
- Как создать функцию в с++ которая бы возвращала моду?
- что значит в программировании функция, которая возвращает значение.