Programación General > C/C++

 Gestion Memoria Con Archivos Y Cadenas

(1/2) > >>

elbaulico:
Vamos a ver si alguien me puede ayudar. Tengo un archivo con numerosos documentos y el programa que quiero hacer es que me lea las palabras de esos documentos y las trate(cambie esa palabra por otra). El problema que tengo es que cuando tengo tantos documentos y tantas palabras me falta memoria o por lo menos me sale un error en la ejecucion. Me gustaria saber si alguien tiene alguna idea de como hacer que pueda leer una palabra, la trate y la escriba en otro archivo. Una solucion es declarar una variable global "char cadena[20]", pero asi no me funciona por lo de la memoria. Como estoy leyendo de un archivo de texto no se cuantos caracteres tiene cada palabra, y ahi me he quedado. El problema lo tengo al gestionar las palabras, por lo demas todo lo tengo hecho

CiRRuS:
Mmmmm, lo primero que se me ocurre es recomendarte el uso de las funciones para reservar y liberar memoria dinámicamente (free, malloc, calloc...), así no hace falta ni variables globales, ni tamaño fijo para el array de char. Lo has probado ya??

mabrev:
Hola:

  Si estas leyendo de un archivo en formato texto, para leer cada palabra puedes utilizar:
 fscanf(fichero, "%s", variable)
Así te irá almacenando cada palabra del fichero en la variable indicada sin necesidad de saber por cuántos caracteres está formada.

  No sé si es esto lo que preguntabas, pero es lo que me ha parecido por tu última línea.

  Espero que te sirva.

Saludos

elbaulico:
El problema que tengo es que cuando leo muchas palabras y las trato me da el siguiente error:

"Thread stopped archivo.exe: Fault: access violations at 0x407db9: write of address 0x7663657c"

Esto por que puede ser? Es por que no reservo memoria o es por otra cosa que no contemplo?

CiRRuS:
No termino de ver claro lo que quieres hacer, a que te refieres cuando dices lo de "tratar" la palabra? como accedes al fichero? Cada palabra la quieres almacenar aparte?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa