#9 Re: Funciones, como hacer un puntero a matriz
Originalmente publicado por
saeros
hombre falta de imaginacion creo yo, si es que sabes programar te daras cuenta por que la matriz ya la manejas a tu antojo no te voy hacer todo el codigo si no sabes programar a volar por que no es pa que postes el solo queria ayuda yo se la di pero bueno
Kryptonyte si no es de tu agrado mira que pudiste haver dado una mejor respuesta bueno si es que la tienes y amigo si no saves que es reservar memoria echale andar que te falta
¿Cómo no voy a saber lo que es reservar memoria? Lo que pasa es que el programa que posteó no lo necesita.
El programa estaba casi correcto. Lo único que le faltaba es la pequeña correción que posteé. Quedaría así:
#include <stdio.h>
#include <conio.h>
#define n 4 /* ORDEN */
void transponer(int m[][n]);
void main()
{
int m[n][n];
for(unsigned C=0; C<n ; C++ )
for(unsigned F=0; F<n; F++ )
m[F][C]=F;
puts("Matriz original.");
for(unsigned C=0; C<n ; C++ )
{
puts("\n");
for(unsigned F=0; F<n; F++ )
printf("%d ",m[F][C]);
}
transponer(m);
puts("\n\nMatriz transpuesta.");
for(unsigned C=0; C<n ; C++ )
{
puts("\n");
for(unsigned F=0; F<n; F++ )
printf("%d ",m[F][C]);
}
getch();
}
void transponer(int m[][n])
{
int aux;
for(unsigned C=0; C<n ; C++ )
for(unsigned F=0; F<n; F++ )
{
aux=m[F][C];
m[F][C]=m[C][F];
m[C][F]=aux;
}
}
Ahora, lo que vos escribiste no le va a andar, por más que complete el código. Cuando usás memoria dinámica, si en la función tenés, por ejemplo:
void transponer(int m[][n])
o
void transponer (int m[n][n])
n no puede ser una variable, por ejemplo global: int n = 10; otra variante:
void transponer (int n, int m[][n])
porque el compilador no te lo acepta, por muy buenas razones.
Y si vos usás memoria dinámica, es justamente para poder tener matrices de tamaño variable.
Probalo y me contás.