una pasar matriz matrices llenar funciones funcion ejemplos con como caracteres bidimensionales bidimensional arreglos arreglo c arrays pointers char

pasar - matriz de caracteres en c



Cómo pasar una matriz 3D de caracteres a una función (3)

Tengo una matriz 3D de tabla de caracteres [] [] [] y quiero pasarla a una función vacía para que pueda hacer cambios en ella. ¿Cómo puedo hacer esto?

void make(char minor[][][]); ..... char greater[20][30][50]; make(greater);

Supongo que esto no va a funcionar.

EDITAR: Otra pregunta relacionada con esto: Digamos que quiero hacer una función de copia para copiar una cadena en la matriz, ¿cómo debo llamar a strcpy en la función?

void copy(char (*minor)[][]) { char m[50] = "asdasdasd"; strcpy(minor[][],m); }


Pase un puntero a una matriz de 2 d:

void make(char (*minor)[30][50]); ... char greater[20][30][50]; make(greater);


Si quisiera pasar una matriz , como esa, en oposición a una que haya asignado dinámicamente con malloc (que serían unos pocos niveles de punteros, no matrices reales), cualquiera de los siguientes prototipos funcionarán:

  • void make(char minor[20][30][50])
  • void make(char minor[][30][50])
  • void make(char (*minor)[30][50])

La razón por la que no puedes tener algo como void make(char ***minor) es porque el minor solo se descompone en un puntero a una matriz de matrices, no decaerá más de una vez, por así decirlo.


Editar: no es una buena manera, ¡mira los comentarios!

Tendrás que pasar punteros y el tamaño de la matriz,

aquí echar un vistazo a este post Pasar matriz de múltiples dimensiones en c