Когда бы вы ни столкнулись с такой проблемой, просто перейдите на справочную страницу для рассматриваемой функции , и она сообщит вам, какой заголовок вам не хватает, например,
$ man memset
MEMSET(3) BSD Library Functions Manual MEMSET(3)
NAME
memset -- fill a byte string with a byte value
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <string.h>
void *
memset(void *b, int c, size_t len);
Обратите внимание, что для C ++ обычно предпочтительнее использовать соответствующие эквивалентные заголовки C ++ <cstring>
/ <cstdio>
/ <cstdlib>
/ и т. Д., А не C <string.h>
/ <stdio.h>
/ <stdlib.h>
/ и т. Д.