[eside-ghost] Pregunta de programación
Pablo Garaizar Sagarminaga
garaizar en eside.deusto.es
Vie Mar 17 16:07:05 CET 2006
Aupa!
El Fri, 17 Mar 2006 14:57:21 +0100
Alejandro López Monge <kodemonk en telefonica.net> comentaba:
> Tengo un buffer de char* de tamaño 1024 bytes y nombre DATA. Los
> primeros chars de data son de control y me gustaría poder prescindir
> de ellos después de leerlos. Ahora hago un
> memmove(data,&data
> [numero_bytes_control],tam_data-numero_bytes_control); pero no me
> gusta me parece muy poco eficiente tener que mover todo el buffer
> hacia la izquierda. Mi pregunta:
> ¿se puede hacer un free parcial?, es decir borrar de un buffer creado
> con malloc sólo un trozo.
No lo sé, aunque molaría :-D
Pero más eficiente que moverlo todo creo que sería reservar otro buffer
y hacer un strcpy o memcpy de uno a otro y luego un free del primero.
Al hacer el strcpy seguro que se copia de forma muy optimizada, y
además, moviendo todo supongo que el hueco te quedará entonces en la
"derecha", ¿no?
--
Agur
Pablo Garaizar Sagarminaga
garaizar en eside.deusto.es
Más información sobre la lista de distribución eside-ghost