C/Visual C - cómo crear arrays dinámicos en C

 
Vista:

cómo crear arrays dinámicos en C

Publicado por thyet (14 intervenciones) el 05/04/2001 05:14:29
Hola, me gustaría que alguien me pudiese decir cómo puedo crear arrays dinámicos en C, obviamente guardando la información que se va introduciendo en ellos. Lo comento pues con 'new' no me vale ya que éste reserva memoria dinámica, pero la sobreescribe en cada pasada, no guarda los datos y no me sirve. De lo que se trata es de crear un buffer de memoria, en el cual se irán almacenando datos, pero ha de ser dinámicamente, y no se me ocurre ni una idea.

Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cómo crear arrays dinámicos en C

Publicado por Germán B. (143 intervenciones) el 05/04/2001 05:51:09
No sé qué te estará pasando con el new, se supone que crea nuevos objetos en nueva memoria.
Es de C++, debería funcionar; yo estoy más acostumbrado al C y por eso usaría malloc(), que devuelve un puntero a un nuevo bloque de memoria del tamaño en bytes que le pidas.
Para lo que querés hacer, yo crearía un array unidimensional de punteros, dimensionandolo a una cantidad máxima de objetos previstos. A cada puntero le asigno memoria nueva cada vez que haya que almacenar un nuevo dato.
Si no querés predimensionar la cantidad de objetos, otra opción es hacerlo con una lista enlazada.
Saludos
G
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

arrays son 'evil'

Publicado por Manuel Kobashigawa (79 intervenciones) el 05/04/2001 06:22:54
dependiendo de tu version(de c++), debes contar con librerias estandares. de no ser asi, te resta revisar tu programa y hacer un replanteamiento.
si vas a manejar unos cuantos objetos, puedes usar arrays.
manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cómo crear arrays dinámicos en C

Publicado por Emilio (42 intervenciones) el 05/04/2001 14:49:28
Usa realloc, esta funcion sabe copiar lo de antes y agregar nueva memoria, fijate en la ayuda como usarla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

el por qué de los arrays dinámicos...

Publicado por thyet (14 intervenciones) el 05/04/2001 18:04:58
En primer lugar agradecer vuestros comentarios, y emilio, probaré lo que me dices.
Bien, ahora os voy a comentar el por qué de esto. Resulta que de lo que se trata es que estoy haciendo un programa en Builder C++ para poder enviar archivos de un ordenador a otro según el protocolo kermit. Pues resulta que estos archivos los voy enviando en tramas, y claro a la hora de recibirlo en el ordenador remoto éste no sabe lo que ocupa el archivo que se está enviando, de ahí que tenga que ir almacenándolo en un buffer dinámico. Pero claro, usando el new lo que me hace es sobreescribir cada trama, y no guardarme los datos anteriores. Entendéis más o menos lo que quiero decir?

Venga, un saludo y espero haberos aclarado alguna cosilla. Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:el por qué de los arrays dinámicos...

Publicado por Endos (143 intervenciones) el 05/04/2001 19:28:51
¿Y porque no creas un archivo en el disco y vas copiando todos los datos conforme los vas recibiendo?

Saludos,
Endos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:el por qué de los arrays dinámicos...

Publicado por thyet (14 intervenciones) el 06/04/2001 17:16:11
Ya lo había pensado. Te refieres a un archivo auxiliar no? el cual podría eliminar después. Ya sé que así es algo más fácil, pero me gustaría intentar hacerlo de forma dinámica sin tratar con archivos. De todas formas será de la forma que lo haga (mediante archivo auxiliar) pues no he encontrado otra solución.

Gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Nodos!!!

Publicado por MæK (1 intervención) el 07/04/2001 09:07:38
Si te he entendido bien, la solucion a tu problema son las listas enlazadas, me explico

creas una estructura de este tipo

struct nodo{int valor;//valor que almacenarias
//en un arreglo
nodo *punteroSiguiente;//puntero
// al
// siguiente
nodo *punteroAnterior;
}Nodo;

Esto trabaja de la misma forma que un arreglo
pero el termino que sigue esta dado por la forma

Nodo->punteroSiguiente;

trabajando de esta forma puedes tener una lista enlazada de nodos hasta que se acabe tu memoria

Si te interesa el tema avisame y te puedo enviar una funcion completa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar