Hi!

Im very new in c programming and i have a lot of problems with this easy exercise.

I have a struct for a matrix

typedef struct {
    int dim;
    float **m;
} t_matriu;

I have a function to create a matrix and to generate random numbers to fill it.

t_matriu *Crea_M ( int dim )
{

    t_matriu mtr;
    int i,j;

    mtr.dim = dim;

    mtr.m=(float **)malloc(sizeof (float*) * (dim) );
    for (i = 0; i < dim; i++)
    {
        mtr.m[i] = (float*) malloc (sizeof (float) * (dim) );
        for ( j = 0; j < dim ; j++ )
        {
            mtr.m[i][j] = rand() % 1000;
        }
    }

    return mtr;     
}

and my main is...

int main ( int argc, char *argv[] ) 
{

    int num = 5;    

    t_matriu mtr;
    t_matriu mtr2;



    //Crea y rellena con aleatorios matriz A
    mtr = Crea_M(num);  
    mtr2 = Crea_M(num);

    Print_M(mtr);
    Print_M(mtr2);


    printf ("Fin del main!\n");   
    return 0;
}

Main, Crea_M and the definition of the struct are in different files but is not a problem with the includes, I know how to do that, Im pretty sure that the problem is in the declaration of the matrix, the arguments or the return of the function or something like that, I dont know how to use pointers.

Of course this code doesnt work...can anyone help me?? thank you so much!

I dont know how to use pointers.

That's your problem, and the fix is learn how to use pointers. But since you'll probably get mad if I don't offer an exact solution to your immediate problem, change this:

t_matriu *Crea_M ( int dim )

To this:

t_matriu Crea_M ( int dim )
commented: hahah... good one +2
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.