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.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
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
Imagen
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
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Te falta liberar la memoria. mira:

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

Saludos bro
Imagen
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
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
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
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-
Responder

Volver a “C/C++”