Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Tamaño arreglo (Ansi C)

Estas en el tema de Tamaño arreglo (Ansi C) en el foro de C/C++ en Foros del Web. Hola. Mi experiencia en C es poco y nada. Así que si mando una mentira, ya están avisados, haha. Que estoy haciendo un programa que ...
  #1 (permalink)  
Antiguo 24/09/2012, 16:47
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Tamaño arreglo (Ansi C)

Hola.

Mi experiencia en C es poco y nada. Así que si mando una mentira, ya están avisados, haha.

Que estoy haciendo un programa que levanta desde un txt (que es un diccionario), todas las palabras y las guarda en un arreglo de 2 dimensiones ( [cantidad de palabras][largo de la palabra]).

El tema que cuando el diccionario es muy grande la aplicación revienta. Yo creo que es porque el tamaño del arreglo. Si uso un diccionario más chico no pasa.

Qué me recomiendan para salvar la situación?

Gracias por su tiempo.
  #2 (permalink)  
Antiguo 24/09/2012, 18:02
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 3 meses
Puntos: 94
Respuesta: Tamaño arreglo (Ansi C)

Hola! para reducir un poco podrias usar memoria dinamica: en vez de crear un arreglo estatico crea un arreglo dinamico de dos 2 dimensiones. De esta forma vas a tener la longitud de las palabras variable y no fija.

Estas seguro que revienta?? una vez vi declarado un arreglo de estructuras de 1000000 de posiciones y dice que le funcionaba


Saludos
  #3 (permalink)  
Antiguo 24/09/2012, 19:28
Avatar de ehguacho  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Tamaño arreglo (Ansi C)

la cantidad de posiciones que puedas tener en un arreglo va a depender de la memoria de la que dispongas para ejecutar la aplicacion y del limite superior para numeros enteros. concretamente hablando, va a depender del modelo de memoria que tu compilador utilice (16, 32 o 64 bits). no obstante, como te dijeron mas arriba, lo mejor para estos casos es utilizar asignacion dinamica de memoria, debido a que no sabes de antemano que cantidad de palabras vas a tener.
__________________
Cine clásico en descarga directa! http://felliniycia.comule.com
  #4 (permalink)  
Antiguo 26/09/2012, 13:02
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 11 años, 8 meses
Puntos: 7
Respuesta: Tamaño arreglo (Ansi C)

Una pregunta. ¿Cual es la asignacion dinamica y cual es la estatica? Es simplemente que en la dinamica el tamaño puede ser cualquiera?
  #5 (permalink)  
Antiguo 26/09/2012, 13:46
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 3 meses
Puntos: 46
Respuesta: Tamaño arreglo (Ansi C)

Bueno esto viene en cualquier libro de C.

Estatica=> int[10]=> es mas rapido que la dinamica pero ocupa un espacio fijo en la memoria, perfecto si tienes pocas cosas pero si tienes muchas como que no

Dinamica=> has de usar los punteros y las funciones para asignar memoria dinamicamente(vease malloc,realloc,free...) es mas lento que el estatico, aunque hoy en dia la rapidez no es algo importante a no ser que necesites hacer un supercalculo, pero en ese caso estarias en la nasa o en algo asi xDD para lo que hacemos nosotros es suficiente.


PD: la dinamica es mas pesada de usar pero bueno.

PD: solo usad memoria dinamica cuando sea super imprescindible, el codigo se complica bastante al tener que usar la dinamica con el tema de los punteros, si no es necesario, no lo uses.


Saludos.

Etiquetas: ansi, programa, tamaño, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:16.