Estou tentando compilar meu programa C no Ubuntu 9.10 (gcc 4.4.1).
Estou recebendo este erro:
Rect.cpp:344: error: ‘memset’ was not declared in this scope
Mas o problema é que já incluí no meu arquivo cpp:
#include <stdio.h>
#include <stdlib.h>
E o mesmo programa compila bem no Ubuntu 8.04 (gcc 4.2.4).
Por favor, me diga o que estou perdendo.
<string.h>
está sendo#include
d indiretamente por meio de algum outro#include
cabeçalho d em sua configuração antiga do gcc / Ubuntu.Respostas:
Você deve incluir
<string.h>
(ou seu equivalente em C ++<cstring>
).fonte
Sempre que você tiver um problema como este, vá para a página do manual da função em questão e ela lhe dirá qual cabeçalho está faltando, por exemplo
Observe que para C ++ geralmente é preferível usar os cabeçalhos C ++ equivalentes adequados,
<cstring>
/<cstdio>
/<cstdlib>
/ etc, em vez de<string.h>
/<stdio.h>
/<stdlib.h>
/ etc.fonte