elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Matrices dinámicas en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matrices dinámicas en C  (Leído 4,572 veces)
thekill01

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Matrices dinámicas en C
« en: 19 Mayo 2012, 22:39 pm »

Hola amigos, la verdad es que soy nuevo en la programación en C y tengo el siguiente problema.

tengo que leer un archivo de texto y quiero guardar los datos en una matriz. El problema es que la cantidad de columnas si sé cuantas son, pero la cantidad de filas no lo sé, ya que este archivo cambia de tamaño cada cierto tiempo.
Quiero guardar los datos en una matriz dinámica, de forma que leo este archivo de texto y guardo los datos en una matriz. Así de acuerdo a la cantidad de información que hay en el archivo sea la cantidad de filas de la matriz. Y no sé como implementar esto.
Espero que me puedan ayudar
Saludos
Mis disculpas si este tema ya está previamente, pero busqué y no lo encontré.


En línea

exel

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Matrices dinámicas en C
« Respuesta #1 en: 19 Mayo 2012, 22:52 pm »

 Si sabes manejar memoria dinamica (malloc, etc) arreglos y archivos pues ya lo tendrias arreglado.

 Cuando ampieces a leer el archivo, sabras que debes obtener la primera fila, con la cantidad de columnas que ya dices conocer. Luego obtendras la segunda fila, y la tercera, etc. Hasta llegar al fin de archivo con la funcion feof(puntero a archivo) que indica que ya no hay mas datos en el archivo.

 Por utilidad, el Sistema Operativo no dejara que otro programa utilize el archivo hasta que tu programa termine de utilizarlo.


En línea

Aberroncho
Colaborador
***
Desconectado Desconectado

Mensajes: 1.738


Daría todo lo que sé por la mitad de lo que ignoro


Ver Perfil
Re: Matrices dinámicas en C
« Respuesta #2 en: 19 Mayo 2012, 22:54 pm »

La reserva dinámica de memoria en C (estándar ANSI) se hace con las funciones malloc() y free(). La primera te da un puntero a la memoria y la segunda te libera la memoria.


Se me ocurre que puedes hacerlo de dos formas:
  • Cuentas las líneas del ficheros y haces una única reserva de memoria para todo el array
  • Haces una lista enlazada en la que cada nodo es una fila del fichero vas reservando la memoria línea a línea y añadiéndola a tu lista enlazada

En línea

"La ignorancia es la noche de la mente, pero una noche sin Luna ni estrellas."
(Confucio)
icoheed

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Matrices dinámicas en C
« Respuesta #3 en: 22 Mayo 2012, 02:06 am »

La forma mas fácil para salir del problema es crear una variable que cuente los datos leídos y en base a esa dentro de un ciclo for vas aumentando los renglones. Hacerlo de forma segura y formal será con un feof o malloc.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda matrices dinámicas multidimencionales
Programación Visual Basic
:matux: 1 1,779 Último mensaje 20 Agosto 2007, 14:03 pm
por :matux:
Duda acerca de como pasar por referencia matrices dinamicas?
Programación C/C++
xuhipoint 6 5,154 Último mensaje 11 Mayo 2014, 22:59 pm
por xuhipoint
(Problema)Matrices Dinámicas de Caracteres!
Programación C/C++
Reynega 4 4,558 Último mensaje 6 Marzo 2015, 18:33 pm
por avesudra
Matrices dinámicas
Programación C/C++
MPLS 3 2,009 Último mensaje 4 Noviembre 2015, 04:31 am
por crack81
suma de dos matrices dinamicas con punteros
Programación C/C++
piyor6 2 5,362 Último mensaje 6 Mayo 2018, 17:27 pm
por piyor6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines