¿Cómo debo escribir mi código, por ejemplo, en un índice de matriz específico de una matriz que sea miembro de una estructura? El siguiente código me está dando problemas.En C: ¿Cómo establecer un puntero a un miembro de la estructura que es una matriz?
// main.c
void clean_buffers(void); // prototype
struct DEV_STATUS {
unsigned char ADDR;
unsigned char DEV_HAS_DATA;
unsigned char ETH_HAS_DATA;
unsigned char DATA[20];
};
struct DEV_STATUS g_cmdQueue[60] = {0};
void main(void) {
clean_buffers();
while (1) {
;// MCU tasks
}
}
void clean_buffers(void) {
unsigned char theCount = 0;
byte queIdx;
for (queIdx = 0; queIdx < 59; queIdx++) {
struct DEV_STATUS *p_struct;
unsigned char *p_data;
p_struct = &g_cmdQueue[queIdx];
p_data = &p_struct->DATA;
p_struct->ADDR = 0;
p_struct->DEV_HAS_DATA = 0;
p_struct->ETH_HAS_DATA = 0;
theCount = 0;
while(*(p_data+theCount) != 0) {
*(p_data+(theCount++)) = 0;
}
}
} // EOF main.c
me sale un error de compilación "miembro de struct/union espera" en la línea siguiente:
p_data = &p_struct->DATA;
¿Cómo debo escribir un puntero si tuviera que acceder, por ejemplo, la específica valor del miembro de la estructura DATA [3]? Estoy confundido, pensé que como p_data = & p_struct-> DATA; está definido, debería ser capaz de obtenerlo usando * (pdata + 3) pero supongo que me falta algo.
Gracias por todas las respuestas, lo agradezco. – Nate
El mensaje de error no tiene sentido. Qué compilador estas usando? – AnT