Здравствуйте!
Можно ли передать аргумент (указатель) внутри первой функции в другую функцию (что-то сложно как-то)?
Вот пример:
#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;
}
Если есть решение проще, то буду рад увидеть, спасибо!