C Language Borrar el contenido de la matriz (puesta a cero)


Ejemplo

A veces es necesario establecer una matriz en cero, después de que se haya realizado la inicialización.

#include <stdlib.h> /* for EXIT_SUCCESS */

#define ARRLEN (10)

int main(void)
{
  int array[ARRLEN]; /* Allocated but not initialised, as not defined static or global. */

  size_t i;
  for(i = 0; i < ARRLEN; ++i)
  {
    array[i] = 0;
  }

  return EXIT_SUCCESS;
}

Un atajo común al bucle anterior es usar memset() de <string.h> . Al pasar la array como se muestra a continuación, se descompone en un puntero a su primer elemento.

memset(array, 0, ARRLEN * sizeof (int)); /* Use size explicitly provided type (int here). */

o

memset(array, 0, ARRLEN * sizeof *array); /* Use size of type the pointer is pointing to. */

Como en este ejemplo, la array es una matriz y no solo un puntero al primer elemento de una matriz (ver longitud de la matriz sobre por qué esto es importante) una tercera opción para eliminar la matriz es 0:

 memset(array, 0, sizeof array); /* Use size of the array itself. */