Encontrar el número de bytes escritos en una matriz más grande [cerrado]

0

¿Cómo puedo leer el número total de bytes escritos en una matriz más grande? Por ejemplo, si se escriben 10 bytes en una matriz uint8_t [100], ¿cómo puedo verificar si los bytes escritos son 10 y no 20 u 80 o 100?

Dado que sizeof (array) nos daría el número total de la matriz (100 bytes), no podemos saber cuántos bytes se escriben realmente en la matriz y cuántas celdas de la matriz están vacías.

    
pregunta Lefteris

1 respuesta

4

Necesitas mantener un registro de eso tú mismo.

Por ejemplo, si está utilizando la matriz como un búfer circular, tendría variables adicionales que contienen los valores de índice para los valores válidos "cabeza" (más reciente) y "cola" (más antiguos). Usted avanza el índice de "cabeza" cada vez que agrega un byte, y avanza la "cola" cada vez que elimina uno.

La diferencia entre los índices "cabeza" y "cola" (módulo del tamaño de la matriz) le dice cuántos bytes son válidos.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas