printf("%d",(*M).c); // aquí da el error
No tengo acceso a los datos. Debería pasar la M como referencia, pero no me sale.
Lo tengo hecho de otra forma pasando sólo las filas y columnas y que la función CrearMatriz devuelva un dato de tipo Matriz, pero quiero que se haga así. Y me da fallo. No sé como hacer en el main para que los datos que se crean tengan accesibilidad desde él.
He probado pasando *M en lugar de M, vamos que estoy bloqueado y no me sale.
A ver si alguien puede ayudarme.
Saludos y GRACIAS.
Este es el matriz.h
Código:
Este es el matriz.ctypedef struct{ int f; int c; int *vector; }Matriz; void CrearMatriz(Matriz *M, int f,int c);
Código:
Este es el main.c#include "matriz.h" void CrearMatriz(Matriz *M,int f, int c){ int *vector; (M=(Matriz *)malloc(sizeof(Matriz))); (*M).f=f; (*M).c=c; // reservo memoria para el vector de tipo int por filas por columnas (vector=(int *)malloc(f*c*sizeof(int))); // le meto valores cero a los elementos de la matriz for (int i=0;i<f*c;i++){ vector[i]=5; } // asignamos al vector el valor reservado en la función. M->vector = vector; // devuelvo el elemento de tipo matriz creado }
Código:
#include <stdio.h> #include <stdlib.h> #include "matriz.h" int main(int argc, char** argv) { Matriz *M; int f=3; int c=3; CrearMatriz(M,f,c); printf("%d",(*M).c); return (EXIT_SUCCESS); }