Imagine I have the following C function :
double * cross_product( double vec1[3], double vec2[3] )
{
double *outvec ;
*(outvec + 0)= vec1[1]*vec2[2] - vec1[2]*vec2[1];
*(outvec + 1)= vec1[2]*vec2[0] - vec1[0]*vec2[2];
*(outvec + 2)= vec1[0]*vec2[1] - vec1[1]*vec2[0];
return outvec ;
}
why the program return an error in the execution , not in the compilation phase ??
this one also does not work
double * cross_product_2( double vec1[3], double vec2[3] )
{
double var ;
double *outvec = &var;
*(outvec + 0)= vec1[1]*vec2[2] - vec1[2]*vec2[1];
*(outvec + 1)= vec1[2]*vec2[0] - vec1[0]*vec2[2];
*(outvec + 2)= vec1[0]*vec2[1] - vec1[1]*vec2[0];
return outvec ;
// }