97 votes

Erreur de compilateur: memset n'a pas été déclarée dans ce champ d'application

Je suis en train de compiler mon programme c dans ubuntu 9.10 (gcc 4.4.1).

J'obtiens cette erreur:

Rect.cpp:344: error: ‘memset' was not declared in this scope

Mais le problème est que j'ai déjà inclus dans mon fichier cpp:

#include <stdio.h>
#include <stdlib.h>

Et le même programme compile bien sous ubuntu 8.04 gcc 4.2.4).

S'il vous plaît dites-moi ce qui me manque.

Je vous remercie.

165voto

sth Points 91594

Vous devez inclure <string.h> (ou de son C++ équivalent, <cstring>).

132voto

Paul R Points 104036

Whevever vous avez un problème comme ça, juste aller à la page de manuel de la fonction en question et il vous dira ce que l'en-tête vous sont manquantes, par exemple

$ 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);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X