Autor
|
Tema: Como declarar un char[] (Leído 5,160 veces)
|
Stakewinner00
|
Hola, me preguntaba como podría declarar un char[] muy grande. Tengo que abrir un archivo de 1gb y el array debe ser enorme. Probe con archivos mas pequeños de hasta 57419067 carácteres pero cuando declaro el array char mens[size];
me salta error y ya no se que puedo hacer. Gracias por todo.
|
|
|
En línea
|
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Memoria dinamica? Cual es el error que te salta?
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
fary
|
Reserva el buffer dinámicamente con la función malloc.
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Reserva el buffer dinámicamente con la función malloc.
Creo que esta en C++, asi que con new. De todas formas, Stakewinner00, necesitas cargar todo el archivo a la memoria? No puedes operar con el partes?
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
Stakewinner00
|
Creo que esta en C++, asi que con new.
De todas formas, Stakewinner00, necesitas cargar todo el archivo a la memoria? No puedes operar con el partes?
Si, pero lo tengo que pasar a diferentes bucles por lo que me va mejor si lo tengo en una sola variable. Supongo que lo que puedo intentar es hacer algo así char [][]
|
|
|
En línea
|
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
je precisamente estoy retomando mi libro de C, voy en asignación dinamica de memoria, con el famoso malloc.
Pero esto es algo bueno, exagerado no?? no es posible asignarlo en string obviamente, pero no podria hacerse en subfunciones con varias variables que acumulen partes de memoria?? dividirlo en digamos, 200 mb o algo así?? no puede resultar algo?
je de ahora en adelante voy a estar bien pendiente del foro de C/C++ para pulir conocimientos.
|
|
|
En línea
|
|
|
|
BatchianoISpyxolo
Desconectado
Mensajes: 166
|
char ** linea: equivalente a un array de strings pero de forma dinámica
Lo único que tienes que hacer es alocar memoria mientres necesites hacerlo o, por el contrario, eliminarla cuando no la necesites.
El coste espacial es mayor / elemento almacenado que de manera estática pero te evitas estimar un tamaño, aunque sabiendo que es de un GB y sabiendo el tamaño de línea...
Haz pruebas con algún archivo pequeñito y según los resultados que obtengas aplícalo al de 1GB.
|
|
|
En línea
|
|
|
|
Stakewinner00
|
Creo que al final si que tendre que intentar hacerlo con diferentes chars. Una pregunta, cual es el tamaño máximo de un char[]? Es para hacer algo tipo if (size>=tamaño_maximo) { declarar otro char }
|
|
|
En línea
|
|
|
|
85
|
char asd[] = { 'H','o','l','a',' ','M','u','n','d','o',0}; Nótese la terminación en cero. atte
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
error al declarar una matriz como publica en v.b
Programación Visual Basic
|
e_nygma
|
1
|
6,621
|
28 Octubre 2007, 22:01 pm
por HaDeS, -
|
|
|
Lectura de matríz de char como char** o DWORD*
Programación C/C++
|
david_BS
|
3
|
3,617
|
20 Febrero 2012, 20:49 pm
por Eternal Idol
|
|
|
COMO DECLARAR ARREGLOS EN JAVA
Java
|
jrkikey
|
3
|
3,062
|
27 Noviembre 2012, 09:34 am
por тαптяα
|
|
|
Como pasar una cadena char a hexadecimal por argumento a un constant char?
Programación C/C++
|
ahaugas
|
3
|
5,816
|
13 Enero 2013, 14:09 pm
por ahaugas
|
|
|
¿Cómo declarar un arreglo e ingresarle datos?
.NET (C#, VB.NET, ASP)
|
Juancho25
|
1
|
3,141
|
4 Junio 2013, 20:56 pm
por El Benjo
|
|