Estoy intentando compilar mi programa C en Ubuntu 9.10 (gcc 4.4.1).
Recibo este error:
Rect.cpp:344: error: ‘memset’ was not declared in this scope
Pero el problema es que ya he incluido en mi archivo cpp:
#include <stdio.h>
#include <stdlib.h>
Y el mismo programa se compila bien en Ubuntu 8.04 (gcc 4.2.4).
Por favor, dime qué me estoy perdiendo.
<string.h>
se está#include
d indirectamente a través de algún otro#include
encabezado d en su configuración anterior de gcc / Ubuntu.Respuestas:
Debe incluir
<string.h>
(o su equivalente en C ++<cstring>
).fuente
Siempre que tenga un problema como este, vaya a la página del manual de la función en cuestión y le dirá qué encabezado le falta, por ejemplo
Tenga en cuenta que para C ++ es generalmente preferible usar los encabezados C ++ equivalentes adecuados,
<cstring>
/<cstdio>
/<cstdlib>
/ etc, en lugar de C<string.h>
/<stdio.h>
/<stdlib.h>
/ etc.fuente