EmbLogic's Blog

Matrix Addition using 2D Array with Pointers

#include
#include

int main()
{
int r,c,k;
printf(“enter the size of rows\n”);
scanf(“%d”,&r);
printf(“enter the size of columns\n”);
scanf(“%d”,&c);
int **a,**b,**d,i,j;
a=(int **)malloc(sizeof(int*)*3);
if(!a)
{
perror(“malloc”);
goto x;
}
for(i=0;i<3;i++)
*(a+i)=(int *)malloc(sizeof(int)*3);
if(!(*(a+i)))
{
perror("malloc");
goto x;
}
b=(int **)malloc(sizeof(int*)*3);
if(!b)
{
perror("malloc");
goto x;
}
for(i=0;i<3;i++)
*(b+i)=(int *)malloc(sizeof(int)*3);
if(!(*(b+i)))
{
perror("malloc");
goto x;
}
d=(int **)malloc(sizeof(int*)*3);
if(!d)
{
perror("malloc");
goto x;
}
for(i=0;i<3;i++)
*(d+i)=(int *)malloc(sizeof(int)*3);
if(!(*(d+i)))
{
perror("malloc");
goto x;
}

printf("enter the element of 1st matrix\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
scanf("%d",*(a+i)+j);
}
}

printf("enter the element of 2nd matrix\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
scanf("%d",*(b+i)+j);
}
}

printf("the element of 1st matrix\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",*(*(a+i)+j));
}
printf("\n");
}

printf("\nthe element of 2nd matrix\n");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",*(*(b+i)+j));
}
printf("\n");
}

for(i=0;i<r;i++)
{

for(j=0;j<c;j++)

{
*((*(d+i)+j)) = *((*(a+i))+j) + *((*(b+i))+j);

}
}

printf("\naddition is\n");

for(i=0;i<r;i++)
{
for(j=0;j<c;j++)

{
printf("%d\t",*((*(d+i))+j));
}
printf("\n");
}
return 0;
x:
return -1;
}

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>