Click here to Skip to main content
15,886,795 members
Please Sign up or sign in to vote.
3.00/5 (2 votes)
See more:
I am writing a program related to Graph Theory, I wrote code for matrix multiplication by using functions, that worked well. when I am using that function into this program I am getting following errors.

I don't understand why this is happening?

Here I am giving you the part of code from my whole program.
C#
float product(int,int,int,int,float a[20][20],float b[20][20],float c[20][20]);
/*first to integers order of matrix a &
 second two integers are order of matrix b
 and float c is result of a*b */

float yn[ar][ar],temp[ar][ac];
product(ar,ac,ac,ac,incidence,yb,temp);/*calling function*/


float product(int ar,int ac,int br,int bc,float a[20][20],float b[20][20],float c[20][20])
{   int i,j,k;
  if(ac==br)
  {
    for(i=0;i<ar;i++)
    {
      for(j=0;j<bc;j++)
      {
        c[i][j]=0;
        for(k=0;k<ac;k++)
        {
          c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
        }
      }
      printf("\n");
    }
  }
  else
  {
    printf("Please Enter proper matrices");
    return -1;
  }
  return 0;
}

When I run this, I am getting these errors.
HTML
prog.c: In function ‘main’:
prog.c:40: warning: passing argument 5 of ‘product’ from incompatible pointer type
prog.c:4: note: expected ‘float (*)[20]’ but argument is of type ‘int (*)[(unsigned int)(ac)]’
prog.c:40: warning: passing argument 6 of ‘product’ from incompatible pointer type
prog.c:4: note: expected ‘float (*)[20]’ but argument is of type ‘int (*)[(unsigned int)(ac)]’
Posted
Updated 13-Oct-12 6:37am
v4

1 solution

I have solved this problem my self. What I did is...

I have given float as inputs but
I am calling the function for int arrays.
that is the problem.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900