Página 1 de 1

Fórmula para acceder a matriz bidimensional dinámica

Publicado: 16 Jul 2014, 00:53
por Pino1952
Hola gente.
Estoy renegando desde hace día y medio tratando de sacar la fórmula para acceder a una matriz bidimensional dinámica y tuve que hacer mi propia formula (lo de propia desconozco si es lo correcto) lo que necesito consultarles es: ¿ es correcta lo que estoy haciendo? y si no es así ¿me podrían poner un ejemplo de cómo hacerlo?.-
Realice unas cuantas practicas con tablas de diferente cantidad filas y columnas y parece no fallar, sólo quería estar seguro.-

Imagen


Sólo como complemento:

Imagen


Desde ya muchas gracias por el tiempo.-
Saludos.

Re: Fórmula para acceder a matriz bidimensional dinámica

Publicado: 16 Jul 2014, 15:40
por Pink
mira este ejemplo de google:
int *arreglo;
int k, int filas, int columnas,i,j;
arreglo = (int*) malloc(filas*columnas*sizeof(int));
for(i=0;i<filas;i++) {
	for(j=0;j<columnas;j++) {
		arreglo[k] = i*columnas + j;
	}
}
En C leí hace tiempo que no es necesario lo que esta en negrita. arreglo = (int*) malloc(filas*columnas*sizeof(int));
También es bueno inicializar los punteros con NULL.

Saludos

Re: Fórmula para acceder a matriz bidimensional dinámica

Publicado: 16 Jul 2014, 21:59
por Pino1952
Hola tocayo.
Gracias por el ejemplo, no sabía que poner en google para hallar un código que me sirviera como guía, dejo un programita, no está ni siquiera a medias pero como ejemplo sirve.-

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(void){ 
	int *arreglo=NULL;
	int k=0, filas=3, columnas=5,i=0,j=0;
	arreglo = malloc(filas*columnas*sizeof(int));

	printf("\n La tabla o vector es de %d filas x %d columnas\n", filas, columnas);
	for(i=0; i<filas; i++){
		for(j=0; j<columnas; j++){
			k = i*columnas + j;
			printf("\n Ingrece dato (fila %d -- columna %d)....:", i+1, j+1);
			scanf("%d", &arreglo[k]);	
		}
		printf("\n");
	}
	k=0;
	for(i=0; i<filas; i++){
		for(j=0; j<columnas; j++){
			printf(" %3d", arreglo[k]);
			k++;
		}
		printf("\n");
	}
	
	printf("\n\n");	
	return 0; 
}
//Indice = Fila*Numero de columnas + Columna

Saludos.
Daniel

Re: Fórmula para acceder a matriz bidimensional dinámica

Publicado: 16 Jul 2014, 22:24
por Pink
Te falta liberar la memoria. mira:

[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]

Saludos bro

Re: Fórmula para acceder a matriz bidimensional dinámica

Publicado: 16 Jul 2014, 22:41
por Pino1952
Hola tocayo.
Graso error el mío, como lo aclare al principio todavía no llegue al capítulo asignación dinámica de memoria, viene luego del que estoy ahora, apuntadores.-

Saludos.
Daniel

Re: Fórmula para acceder a matriz bidimensional dinámica

Publicado: 17 Jul 2014, 20:44
por Pino1952
Hola Daniel.
Espero que pronto te pongas a leer sobre C, así no tengo que dar tantas vueltas para encontrar respuestas(un poco egoísta el tipo).-

Saludos.
Daniel

Re: Fórmula para acceder a matriz bidimensional dinámica

Publicado: 17 Jul 2014, 21:19
por Pink
siempre que tengo tiempo leo.

Saludos bro