Hey everyone could someone tell me why the first code is working(without functions) and the second one is not?
same code using functionsCode:#include<stdio.h> #include <stdlib.h> int main (void) { int row_size1,col_size1,row_size2,col_size2,flag =1; int **A; int i = 0, j = 0; char a,c; do { A = malloc(2 * sizeof (int *)); printf("\ncmd> "); c = getchar(); if(c == 'A') { scanf("%d %d",&row_size1,&col_size1); A[0]= malloc(row_size1*sizeof(int*)); for(i=0;i<row_size1;i++) { A[i]=malloc(col_size1*sizeof(int)); } for(i=0;i<row_size1;i++) { for(j=0;j<col_size1;j++) { scanf("%d",&A[i][j]); // if (A[i][j] == 99) // 'x' is character variable i declared // break; } } printf("The required matrix is\n"); for(i=0;i<row_size1;i++) { for(j=0;j<col_size1;j++) printf("%d ",A[i][j]); printf("\n"); } for(i=0;i<row_size1;i++) { free(A[i]); } free(A); } if(c == 'B') { scanf("%d %d",&row_size1,&col_size1); A[1]= malloc(row_size1*sizeof(int*)); for(i=0;i<row_size1;i++) { A[i]=malloc(col_size1*sizeof(int)); } for(i=0;i<row_size1;i++) { for(j=0;j<col_size1;j++) { scanf("%d",&A[i][j]); if (A[i][j] == 99) // 'x' is character variable i declared break; } } printf("The required matrix is\n"); for(i=0;i<row_size1;i++) { for(j=0;j<col_size1;j++) printf("%d ",A[i][j]); printf("\n"); } for(i=0;i<row_size1;i++) { free(A[i]); } free(A); } } while(flag == 1); return 0; }
Code:#include<stdio.h> #include <stdlib.h> int main (void) { int row_size1,col_size1,row_size2,col_size2,flag =1; int **A=NULL; int i = 0, j = 0; char a,c; do { A = malloc(2 * sizeof (int *)); printf("\ncmd> "); c = getchar(); if(c == 'A') { scanf("%d %d",&row_size1,&col_size1); A[0]= malloc(row_size1*sizeof(int*)); for(i=0;i<row_size1;i++) { A[i]=malloc(col_size1*sizeof(int)); } for(i=0;i<row_size1;i++) { for(j=0;j<col_size1;j++) { scanf("%d",&A[i][j]); } } matrix_display(A[0], row_size1, col_size1); } if(c == 'B') { scanf("%d %d",&row_size1,&col_size1); A[1]= malloc(row_size1*sizeof(int*)); for(i=0;i<row_size1;i++) { A[i]=malloc(col_size1*sizeof(int)); } for(i=0;i<row_size1;i++) { for(j=0;j<col_size1;j++) { scanf("%d",&A[i][j]); // if (A[i][j] == 99) // 'x' is character variable i declared // break; } } matrix_display(A[1], row_size1, col_size1); } } while(flag == 1); //return 0; } void matrix_display(int *A, int row_size1, int col_size1) { int i,j; printf("The required matrix is\n"); for(i=0;i<row_size1;i++) { for(j=0;j<col_size1;j++) printf("%d ",A[i][j]); printf("\n"); } for(i=0;i<row_size1;i++) { free(A[i]); } free(A); }



1Likes
LinkBack URL
About LinkBacks




