SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ciber_lep en Viernes 18 de Febrero de 2005, 02:27

Título: Buffer
Publicado por: ciber_lep en Viernes 18 de Febrero de 2005, 02:27
hola, se les saluda muy cordialmente, queria perdirles de fabor si alguien sabe donde podre encontrar un manual en c que hable de como trabajar con el buffer pues no se ni que es. gracias de ante mano  :P
Título: Re: Buffer
Publicado por: JuanK en Viernes 18 de Febrero de 2005, 03:37
un buffer e el nombre habitual que se le da a cualquier espacio en memoria..
como crear un buffer:

Código: Text
  1.  
  2. char *bufferChar;
  3.  
  4. //reservar memoria  para 1500 bytes y asignarla a un apuntador char
  5. bufferChar = (char *)malloc(1500);
  6.  
  7.  

Código: Text
  1.  
  2. char *bufferChar;
  3.  
  4. //reservar memoria  para 320 bytes y asignarla a un apuntador char
  5. bufferChar = (char *)malloc(sizeof(int)*10);
  6.  
  7.  

Código: Text
  1.  
  2. int*bufferInt;
  3.  
  4. //reservar memoria  para 1500 bytes y asignarla a un apuntador int
  5. bufferInt = (int *)malloc(1500);
  6.  
  7.  

Asi lo creas y para usarlo pues= que con cualquier apuntador.
Título: Re: Buffer
Publicado por: ciber_lep en Sábado 5 de Marzo de 2005, 04:16
Gracias JuanK, por el consejo, pero perdona por no entenderte del todo, me di cuenta como declararlo, pero serà que puedes darme un ejemplo por fa?.
gracias. :huh:
Título: Re: Buffer
Publicado por: JuanK en Sábado 5 de Marzo de 2005, 15:08
bueno no te compliques es muy sencillo.

ejemplo: quiero guardar algo en un buffer (es decir en memoria), lo unico que necesito es esto:
Código: Text
  1.  
  2. //declaro una variable apuntador a un espacio de memoria
  3. //he escogido char porqu char es de un byte y generalmente
  4. //conviene guardar los datos de a byte,
  5. //todo depende d lo que quieras hacer.
  6. char *mi_buffer=NULL;
  7.  
  8. //ahora quiero que el apuntador apunte a una area de 1000 bytes , entonces hago:
  9. mi_buffer = (char *)malloc(1000);
  10. //donde malloc es una funcion del lenguaje c que traduce:
  11. //memory allocation, y eso hace localizar una porcion de memoria
  12. //en este caso 1000 bytes
  13. //y listo ese es mi buffer y lo manejo com cualquier apuntador
  14. // ej: mi_buffer++, moveria el apuntador 1 byte hacia adelante etc..
  15. //o como matriz:  mi_buffer[1]=0x41, mi_buffer[2]=65, mi_buffer[1000]='A'
  16. //cuando ya no lo uses más entonces lo liberas:
  17. free(mi_buffer)
  18.  
  19.  

esto es lo basico, tambien puedes declarar el buffer de cualquier tipo pero en esos casos debes de tener en cuenta el tamaño de la variable si accedes al estilo de punteros.

para mas informacion:

malloc
calloc
realloc
apuntadores
arreglos
desplazamiento de apuntadores
.. listas enlazadas.