En mis programas de comunicacion con modems uso lo siguiente:
void borrar_array( char a[], int len) {
int i=0;
for(i=0;i<len;i++) {
a(i)=" ";
}
}
La función anterior borra un array de longitud len...
Si por ejemplo, usando #int_rda recibo un string, y lo grabo en un buffer_modem[max_buffer_len], depues de procesar la info, al string se debe aplicar la funcion de borrar_array...len es un entero que se incrementa segun la cantidad de caracteres recibidos....
Ejemplo:
fprintf(modem,"AT+CSQ"
;
delay_ms(500); //Espera respuesta del modem.
//...procesar la info....
borrar_array(buffer_modem,len); //Borra el contenido del buffer
len=0; // Resetea indice del buffer_modem
// para poder almacenar otro string
el indice o contador del buffer debe ser puesto a 0 para que el proximo string a recibir comience a ser almacenado en la primera posicion del buffer_modem...
Saludos