Обмен элементов двумерного динамического массива через массив указателей - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Собственно сабж. Есть задание:
Написать программу функция которой получит в качестве параметра динамический двухмерный массив, затем создать массив указателей каждый элемент которого должен ссылаться на элемент двухмерного массива, предусмотреть обмен местами любых двух элементов координаты которых должны быть указаны с клавиатуры, обмен элементов предусмотреть через массив указателей.
Есть код:
#include <stdio.h>
#include <conio.h>
 
void func(int **a){
    int **b=new int*[10];//выделение памяти
    for (int i=0; i<10; i++){
        b[i]=new int[10];
    }
    for (int i=0; i<3; i++){//заполнение
        for (int j=0; j<3; j++)
        b[i][j]=i+j;
    }
    printf("___________________________________________\n");
    printf("dynamic mass\n");
    printf("___________________________________________\n");
    for (int i=0; i<3; i++){//вывод
        for (int j=0; j<3; j++)
        printf("%i\t", b[i][j]);
        printf("\n");
    }
    printf("___________________________________________\n");
    printf("\n");
        for (int i=0; i<10; i++){
        delete b[i];
    }
    delete []b;
}
 
int main (void){
    int i, j;
    int x, y;
    int **p;
    func (p);
    int *c[10];
    for(i=0; i<10; i++){//ссылки
            c[i]= &*p[i];
    }
    printf("___________________________________________\n");
    printf("mass of indexes\n");
    printf("___________________________________________\n");
    for (i=0; i<3; i++){// вывод массива указателей
        for (j=0; j<3; j++)
        printf("%x\t", &p[i][j]);
        printf("\n");
    }
    printf("___________________________________________\n");
    /*printf("\nenter elements' coordinates...\n");//координаты
    printf("enter line...\n");
    scanf("%i", &x);//строка
    printf("enter column...\n");
    scanf("%i", &y);//столбец*/
    //предусмотреть обмен...КАК???
    for (i=0; i<10; i++){//очистка
        delete p[i];
    }
    delete []p;
    getch();
    return 0;
}
Как предусмотреть обмен? PS: очистку памяти ставить где лучше: в функции или в мэйне?

Решение задачи: «Обмен элементов двумерного динамического массива через массив указателей»

textual
Листинг программы
(int &h){

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы