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
#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
Buffer: **********
Nums: 0 0 0 0 0Errores frecuentes
- Usar
memsetpara poner un array deinta valores distintos de0. - Pasar mal el tamaño (usar número de elementos en vez de bytes).
- Olvidar el terminador
\0en buffers de texto.
Aplicación práctica
memset se usa para limpiar estructuras, reiniciar buffers y preparar memoria antes de procesarla.
Siguiente ejercicio recomendado
- Tipos de datos en C: ejercicio resuelto
- malloc y realloc en C: ejercicio resuelto
- Ficheros en C: ejercicio resuelto
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.