Я должен написать код, используя ТОЛЬКО 2D указатели, и он должен включать функции для выделения: 1D массив, массив массивов и 2D массив. Однако в функции для чтения массивов она останавливается после первого ввода scanf
В функции «info» (где проблема) я попытался изменить ее на ((A + i) + j), (* (A + I) + j) и ( (A + i) + j). Никто не работал.
#include<stdio.h>
#include<malloc.h>
.
.
.
void allocate1(float *A, int N)
{
A=(float*)malloc(N*sizeof(float*));
}
void allocate2(float **A, int N)
{
A=(float**)malloc(N*sizeof(float**));
}
void allocate(float **A, int M, int N)
{
int i;
allocate2(A,M);
for(i=0;i<M;i++)
allocate1(*(A+i),N);
}
void info(float **A, int N, int M)
{
int i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
printf("input element (%d,%d)\n", i+1,j+1);
scanf("%f",(*(A+i)+j));
}
}
.
.
.
void main()
{
float **A,**B,**C;
int N,M,P,D;
do
{
M=read();
N=read();
D=read();
P=read();
}while(D!=N);
allocate(A,M,N);
allocate(B,N,P);
info(A,N,M);
.
.