2016-01-20 2 views
-3

У меня есть следующий код на С:неявной декларации функции 'MemSet' [-Wimplicit-функция декларирование]

#include<stdio.h> 

int main(void) 
{ 
    char buff[10]; 
    memset(buff,0,sizeof(buff)); 

    gets(buff); 

    printf("\n The buffer entered is [%s]\n",buff); 

    return 0; 
} 

Когда я запускаю код, я получаю следующее предупреждение:

warning: implicit declaration of function ‘memset’ [-Wimplicit-function-declaration] 

Как я могу решить проблему?

Благодаря

+5

'memset' объявлен в' string.h' – Kninnug

+6

Пожалуйста, пожалуйста, пожалуйста, не используйте 'gets' ... –

+1

@Michael: $ человек MemSet – Griffin

ответ

1

Добавить

#include <string.h> 

в верхней части файла.

Это потому, что это файл заголовка, в котором прототип memset может быть найден компилятором.

Избегайте использования функции приема ... Вместо этого используйте scanf или fgets.

Посмотрите HERE

+0

сейчас у меня есть эта ошибка: предупреждение: неявное объявление функции 'gets' [-Wimplicit-function-declaration] получает (buff); – Michael

+0

@ Майкл: см. [Этот ответ] (http://stackoverflow.com/a/2506036/253056), чтобы узнать, как быстро и легко решить эти проблемы. –

+1

@Michael Вы удалили stdio include? BTW не использовать эту функцию ... Используйте [scanf] (http://www.tutorialspoint.com/c_standard_library/c_function_scanf.htm) или [fgets] (http://www.tutorialspoint.com/c_standard_library/c_function_fgets.htm). Взгляните [ЗДЕСЬ] (http://stackoverflow.com/questions/1694036/why-is-the-gets-function-so-dangerous-that-it-should-not-be-used) – LPs

0

Добавить

#include <string.h> 

MemSet доступен в string.h

+0

теперь у меня есть эта ошибка: предупреждение: неявное объявление функции «получает» [-Wimplicit-function-declaration] получает (buff); – Michael

Смежные вопросы