powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / указатель на двумерный динамический массив
8 сообщений из 8, страница 1 из 1
указатель на двумерный динамический массив
    #38216255
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как передать в функцию указатель на двумерный динамический массив, и далее внутри функции с ним работать. Мне нужно чтобы в функцию передавался не сам массив, а его копия.
...
Рейтинг: 0 / 0
указатель на двумерный динамический массив
    #38216321
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void foo(int *a1, int w, int h) {
   int *a2 = malloc(sizeof(int)*w*h);
   memcpy(a2, a1, sizeof(int)*w*h);
   int row, col;
   for(row=0; row<h; row++) for(col=0; col<w; col++) {
      printf("%d ", a2[row*w + col]);
  }
   free(a2);
}

int main() {
   int arr[10][20];
   a[5][6] = 1234;
   foo(arr, 10, 20);
   return 0;
}
...
Рейтинг: 0 / 0
указатель на двумерный динамический массив
    #38216415
kab18Как передать в функцию указатель на двумерный динамический массив , и далее внутри функции с ним работать. Мне нужно чтобы в функцию передавался не сам массив, а его копия.
А нужен точно динамический, а не статический массив?
...
Рейтинг: 0 / 0
указатель на двумерный динамический массив
    #38216423
На С++11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void foo(int *a1, int w, int h) {
   int *a2 = malloc(sizeof(int)*w*h);
   memcpy(a2, a1, sizeof(int)*w*h);
   int row, col;
   for(row=0; row<h; row++) for(col=0; col<w; col++) {
      printf("%d ", a2[row*w + col]);
  }
   free(a2);
}

int main() {
   int arr[10][20];
   a[5][6] = 1234;
   foo(arr, 10, 20);
   return 0;
}


На С++11 можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#include<array>
#include<iostream>

template<size_t N, size_t M> 
void func(std::array<std::array<int, M>, N> arr) {
    for(auto const& i: arr) { 
        for(auto const& k: i) std::cout << k << ", "; 
        std::cout << std::endl; 
    }
}

int main() {
   std::array<std::array<int, 10>, 20> arr;
   for(auto &i: arr) for(auto &k: i) k = 0;
   arr[5][6] = 1234;
   func(arr);
   return 0;
}
...
Рейтинг: 0 / 0
указатель на двумерный динамический массив
    #38216441
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно динамический?kab18Как передать в функцию указатель на двумерный динамический массив , и далее внутри функции с ним работать. Мне нужно чтобы в функцию передавался не сам массив, а его копия.
А нужен точно динамический, а не статический массив?

А разницы-то нет.
...
Рейтинг: 0 / 0
указатель на двумерный динамический массив
    #38216457
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точно динамический. Просто думал, что можно добавить 3-й указатель и будет счастье.)
...
Рейтинг: 0 / 0
указатель на двумерный динамический массив
    #38216466
kab18Точно динамический. Просто думал, что можно добавить 3-й указатель и будет счастье.)
Третий то откуда?
И приведите пример создания динамического массива.
...
Рейтинг: 0 / 0
указатель на двумерный динамический массив
    #38217947
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
приведите примерkab18Точно динамический. Просто думал, что можно добавить 3-й указатель и будет счастье.)
Третий то откуда?
И приведите пример создания динамического массива.
double** A;
A=(double**)calloc(n,sizeof(double*));
double** A1;
A1=(double**)calloc(n,sizeof(double*));
for(unsigned int i=0;i<n;i++)
{
A[i]=(double*)calloc(n+1,sizeof(double));
A1[i]=(double*)calloc(n+1,sizeof(double));
}
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / указатель на двумерный динамический массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]