@Gagatyn
Самоучка

Как передать в функцию указатель на указатель?

Здравствуйте!
Можно ли передать аргумент (указатель) внутри первой функции в другую функцию (что-то сложно как-то)?
Вот пример:
#include "stdio.h"

void ff(int *p, int size) {
  int i, j, c = 25;
  for(i = 0; i < size; i++) {
    for(j = 0; j < size; j++) {
      *(p + i * size + j) = c--;
      printf("%0.2d ", *(p + i * size + j));
    } puts(" ");
  }
  puts(" ");
  gg(*p); // <---- сюда передать указатель p и использовать его для ...(переходим на gg() ) 
}

void gg(int **q, int size) { 
// чтобы обнулить массив, как правильно написать, так *(q + i * size + j) или *(*(q + i * size + j)) или ???
  int i, j;
  for(i = 0; i < size; i++) {
    for(j = 0; j < size; j++) {
      *(q + i * size + j) = 0;
      printf("%0.2d ", *(q + i * size + j) );
    } puts(" ");
  }
}

int main(void) {
  
  int a[5][5] = {0}, c = 1, i, j;
  
  for(i = 0; i < 5; i++) {
    for(j = 0; j < 5; j++) {
      a[i][j] = c++;
      printf("%0.2d ", a[i][j]);
    } puts(" ");
  }
  puts(" ");
  ff((int *)a, 5);
  
  return 0;
}

Если есть решение проще, то буду рад увидеть, спасибо!
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
teke_teke
@teke_teke
programador
указатель на указатель - это int **my_pointer
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы