Miércoles 20 de Noviembre de 2024, 18:41
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Matrices Dinamicas
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Matrices Dinamicas (Leído 1473 veces)
vhgmaya
Nuevo Miembro
Mensajes: 2
Matrices Dinamicas
«
en:
Lunes 24 de Octubre de 2005, 20:35 »
0
#include<stdio.h>
#include<stdlib.h>
/*declaracion matriz*/
int *matriz;
int a,b;
/* decalracion variables*/
int x,y,i,j,cont=0;
/*inicio*/
main()
{
matriz = (int *) malloc (sizeof(int)*a*
;
for(x=1;x<=2;x++)
{
for(y=1;y<=2;y++)
{
printf("[%d][%d]=>",x,y);scanf("%d",&matriz[x, y]);//sile pongo matriz
[y] sale error y silo dejo asi solo guarda los 2 ultimos
}
}
for(i=1;i<=2;i++)
{
for(j=1;j<=2;j++)
{
printf("%d",matriz [i, j]);//lo mismo de arriva solo imprime los dos ultimos 2 veses
}
}
}
Tweet
Amilius
Miembro HIPER activo
Mensajes: 665
Re: Matrices Dinamicas
«
Respuesta #1 en:
Lunes 24 de Octubre de 2005, 21:21 »
0
1. el primero es el 0, no el 1.
2. con scanf siempre & por que es parámetro de salida.
3. no inicializaste a ni b
4. no usas ni a ni b en tus ciclos
5. -> arriba -> veces
6. no liberaste la memoria
7. al reservarla a ni b están definidas
LeGatoRojo
Miembro HIPER activo
Mensajes: 552
Nacionalidad:
Re: Matrices Dinamicas
«
Respuesta #2 en:
Sábado 29 de Octubre de 2005, 02:29 »
0
"printf("[%d][%d]=>",x,y);scanf("%d",&matriz[x, y]);//sile pongo matriz
[y] sale error y silo dejo asi solo guarda los 2 ultimos"
Salen solo los 2 ultimos por que es lo que le dices, necesitas usar un ciclo dentro de otro para moverte tambien en x, claro si hubieras puesto un apuntador a un arreglo de apuntadores, pero tan solo usas un apuntador normal.
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.
scullyERA
Miembro activo
Mensajes: 42
Nacionalidad:
Re: Matrices Dinamicas
«
Respuesta #3 en:
Jueves 10 de Noviembre de 2005, 15:41 »
0
Efectivamente, como dice el buen Darktiger estas usando un apuntador normal, necesitas declarar matriz como un doble apuntador para poder usarlo como matriz y no como vector:
suponiendo que a son tus filas y b son tus columnas
Código: Text
int **matriz; //declaras matriz como doble puntero
matriz= new (int *[a]);//asignas espacio en memoria para las filas
for (cont=0; cont < a; cont++)
matriz [cont]= new (int *[b]);//asignas espacio en memoria para las columnas de cada fila
Claro, además de todos los demás "pequeños" errores que te mencionaron:
[/color]
[color= red]a.- no inicializas a ni b, por lo que no se sabe cuanto espacio en memoria se asignara a matriz
b.- el primer elemento de un arreglo es 0, no 1
c.- no usas a ni b como valores en las condiciones de repeticion de los ciclos
[/color]
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Matrices Dinamicas