bueno no te compliques es muy sencillo.
ejemplo: quiero guardar algo en un buffer (es decir en memoria), lo unico que necesito es esto:
//declaro una variable apuntador a un espacio de memoria
//he escogido char porqu char es de un byte y generalmente
//conviene guardar los datos de a byte,
//todo depende d lo que quieras hacer.
char *mi_buffer=NULL;
//ahora quiero que el apuntador apunte a una area de 1000 bytes , entonces hago:
mi_buffer = (char *)malloc(1000);
//donde malloc es una funcion del lenguaje c que traduce:
//memory allocation, y eso hace localizar una porcion de memoria
//en este caso 1000 bytes
//y listo ese es mi buffer y lo manejo com cualquier apuntador
// ej: mi_buffer++, moveria el apuntador 1 byte hacia adelante etc..
//o como matriz: mi_buffer[1]=0x41, mi_buffer[2]=65, mi_buffer[1000]='A'
//cuando ya no lo uses más entonces lo liberas:
free(mi_buffer)
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.