[C con Clase] Tamaño de Buffer

Programante programante en gmail.com
Jue Jun 3 01:21:12 CEST 2010


El 03/06/10 00:27, anonymous.mx escribió:
> Muchas gracias Steven por las observaciones acertadas.
>  
> No he entrado a la etapa de depuración total del codigo, pero siempre
> una buena organización desde el principio es mejor.
>  
> Soy programador empirico, me gusta hacer el codigo partiendo de una
> idea, compilar y probar.
>  
> Agrego los siguiente comentarios.
>  
> _trched es tipo char con 240 posiciones (char _trched [240];), al
> comenzar el codigo tuve muchos problemas para obtener un valor entero
> de 4 bytes o de 2 bytes, por lo que se me ocurrio hacer las 2
> funciones de valores enteros para 2 y 4 bytes. (unsigned char
> int2[2];   unsigned char int4[4];) (ademas de que funcionara tanto en
> windows, linux y solaris)
Sabes que existen las funciones htns y htonl, ¿verdad? indica el for.


> Entonces desde la posicion 17-1 hasta 17+2 se encuentra el valor
> entero de 4 bytes que quiero leer y comparar contra la variable SP, si
> la traza tiene el valor del SP procedo a grabar la traza completa en
> nuevo archivo.
>  
> Por lo que me tiene intrigado estas instrucciones que me comentaste.
>  
>  
> entero4( &_trched[17-1] )
>
> O de su forma equivalente:
>
> entero4( _trched + 17-1 )
>
El parámetro de la función es un puntero a char. Por lo tanto es
equivalente pasarle &_trched[17-1] que copiar todos esos bytes uno a
uno. &_trched[17-1] es la dirección de _trched[17-1], es decir, la
dirección del 17º byte de _trched (empezando desde 1). Como no afecta en
nada a _trched, te ahorras una copia. La forma equivalente usa punteros
y se aprovecha de que un char mide un byte, así que no es tan clara.




Más información sobre la lista de distribución Cconclase