memset en C: ejercicio resuelto para inicializar arrays y buffers

memset en C: ejercicio resuelto

Si buscas memset en C ejercicio resuelto, aquí tienes un caso práctico para inicializar buffers de texto y arrays numéricos.

Enunciado

Crea un programa que:

  • inicialice un buffer de texto con '*',
  • inicialice un array de enteros a 0,
  • imprima los resultados para verificar el estado final.

Solución en C

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>

int main(void) {
    char buffer[11];
    int nums[5];

    memset(buffer, '*', 10);
    buffer[10] = '\0';

    memset(nums, 0, sizeof(nums));

    printf("Buffer: %s\n", buffer);
    printf("Nums: ");
    for (int i = 0; i < 5; i++) printf("%d ", nums[i]);
    printf("\n");

    return 0;
}

Salida esperada

1
2
Buffer: **********
Nums: 0 0 0 0 0

Errores frecuentes

  • Usar memset para poner un array de int a valores distintos de 0.
  • Pasar mal el tamaño (usar número de elementos en vez de bytes).
  • Olvidar el terminador \0 en buffers de texto.

Aplicación práctica

memset se usa para limpiar estructuras, reiniciar buffers y preparar memoria antes de procesarla.

Siguiente ejercicio recomendado

Práctica guiada y libro completo

Si quieres una ruta completa con progresión real de dificultad:

FAQ

¿memset sirve para cualquier tipo de dato?

Sirve para escribir bytes. Funciona muy bien para 0, pero no para todos los valores numéricos en cualquier tipo.

¿Por qué sizeof(array) es clave con memset?

Porque memset recibe bytes, no número de elementos.

¿memset es más rápido que un bucle?

En muchos casos sí, porque suele estar optimizado a bajo nivel.