Por que obtenho esse erro na compilação, embora eu consigo executá-lo normalmente;
Código:
#include <stdio.h>
#include <stdlib.h>
int main() {
char nomeCompleto[20];
printf("Qual o seu nome: ");
gets(nomeCompleto);
printf("Seu nome é: %s\n", nomeCompleto);
return 0;
}
Erro na compilação:
spli.c: In function ‘main’:
spli.c:8:2: warning: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations]
gets(nomeCompleto);
^
/tmp/ccLaJxGc.o: na função `main':
spli.c:(.text+0x29): aviso: the `gets' function is dangerous and should not be used.
Mas neste caso, eu compilei e executei no linux (Terminal). O programa rodou normalmente, mas por que ele me retorna isso? Eu queria compilar sem erros.
Olá @YuriDeveloper, quando uma função está marcada como depreciada(deprecated) é porque não é recomendado utilizar ela… Isso se dá a vários motivos… Funções que não recebem mais atualizações, funções que apresentão uma falha de segurança mas não são removidas para não quebrar as aplicações antigas.
É recomendado usar o fgets, pois o gets pode causar buffer overflow… Tipo seu vetor é de 20 caracteres… Mas o usuário digita 30… Vai dar pau.
Aqui tem uma explicação: