Create a program in the following way:
main
function, declare a static two-dimensional array B with \(N\) rows and \(M\) columns. Use the directive #define
of a preprocessor.void init_tab(int N, int M, double B[][M]);
main
function.main
function. Print the obtained values inside the main
function.main
function. Use a header:void select_row(int N, int M, double B[][M], double row[]);
Modify the program in order to use a dynamic allocation to store the arrays:
// allocate a block of memory for elements
double *row = (double *) malloc(M * sizeof(double));
// free memory
free(row);
// allocate a continuous block of memory for all elements
double *elems = (double *) malloc(N * M * sizeof(double));
// allocate memory for the array storing pointers to the rows
double **B = (double **) malloc (N * sizeof(double));
// assign proper addresses of the rows to the pointers
for (int i = 0; i < N; i++)
{
B[i] = &elems[i*M];
}// write a code here which uses the array
// free memory
// free memory used by the pointer array
free(B); // free memory used by the elements free(elems);