TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cvargcal en 29 de Agosto de 2016, 13:14:10

Título: Funcion para borrar array
Publicado por: cvargcal en 29 de Agosto de 2016, 13:14:10
Saludos estoy  creando una función de borrado general, pero no funciona:

Código: C
  1. #DEFINE SIZE_BUFFER    100  // Tamaño Serial
  2. #define SIZE_IMEI            16                  // Tamaño IMEI
  3.  
  4. char Temp_String_SIM800[SIZE_BUFFER];                   // String
  5. char IMEI[SIZE_IMEI ];                                                  // String
  6.  
  7.  
  8. void CLEAR_BUFFER(char* array,int* size)
  9. {
  10.    memset(array,NULL,size);                  
  11. }

Para luego usarla de esta forma:
Código: C
  1. CLEAR_BUFFER(IMEI,SIZE_IMEI );
  2. CLEAR_BUFFER(Temp_String_SIM800,SIZE_BUFFER);
         

Dice que no es una expresión numérica.
Título: Re:Funcion para borrar array
Publicado por: RICHI777 en 29 de Agosto de 2016, 13:22:24
Para que crear una función así, usa el memset directamente.

Código: C
  1. memset( Temp_String_SIM800, 0, SIZE_BUFFER );

o

Código: C
  1. memset( Temp_String_SIM800, 0, sizeof( Temp_String ));

Saludos !
Título: Re:Funcion para borrar array
Publicado por: cvargcal en 29 de Agosto de 2016, 16:30:06
Para que crear una función así, usa el memset directamente.
....
Gracias,al final así lo hice.
Voy a probar esa linea, aquí no hay necesidad de poner el tamaño, ya que "sizeof" lo hace, cierto?
Código: C
  1. memset( Temp_String_SIM800, 0, sizeof( Temp_String ));
Título: Re:Funcion para borrar array
Publicado por: RICHI777 en 29 de Agosto de 2016, 16:31:21
Para que crear una función así, usa el memset directamente.
....
Gracias,al final así lo hice.
Voy a probar esa linea, aquí no hay necesidad de poner el tamaño, ya que "sizeof" lo hace, cierto?
Código: C
  1. memset( Temp_String_SIM800, 0, sizeof( Temp_String ));

Exacto !
Título: Re:Funcion para borrar array
Publicado por: fuente en 30 de Agosto de 2016, 03:37:39
Ojo cvargcal, si el código que has puesto es el que estás intentando compilar, en la linea 1, el primer define lo tienes en mayúsculas (DEFINE), y el compilador distingue entre mayúsculas y minúsculas.
Por esto te dice que SIZE_BUFFER no es una expresión numérica.