2
respostas

Até compila, mas ao tentar executar aparece "Acesso negado" no prompt.

Coloco para compilar no prompt gcc forca.c -o forca, imediatamente compila, mas o antivírus não permite de forma alguma executar o arquivo.exe gerado. Aparece uma mensagem de "Acesso negado" no prompt . E Na notificação do antivírus aparece essa mensagem "O Auto-Protect esta processando um risco à segurança Heur.AdvML.B." Alguém pode ajudar? To tentando executar o código abaixo. Obs: Dependendo do que eu coloco no Sublime consigo executar normalmente. Ex: Se eu colocar para imprimir a palavra MELANCIA, executa tranquilo.

#include <stdio.h>
#include <string.h>

int main() {
    char palavrasecreta[20];

    sprintf(palavrasecreta, "MELANCIA");

    int acertou = 0;
    int enforcou = 0;

    do {

        char chute;
        scanf("%c", &chute);

        for(int i = 0; i < strlen(palavrasecreta); i++) {
            if(palavrasecreta[i] == chute) {
                printf("A posicao %d tem essa letra!\n", i);

            }

        }

        } while(!acertou && !enforcou);    

}
2 respostas

Você criou um laço infinito.

Ao definir acertou e enforcou iguais a zero, você não incrementou elas em seu código. Estas variáveis zeradas são interpretadas pelo C como valores falsos, então, no seu while(!acertou && !enforcou), por estarem negadas, passam a ser verdadeiras.

Uma forma de resolver isso, portanto, seria usar estas variáveis dentro do código de forma a obter uma condição de saída para o laço.

O programa gera acesso indevido de memória, ou seja, está tentando usar espaço em RAM que pode conter informações de outros programas. Isso é comumente causado por malware, por isso o antivirus bloqueia.

O problema que fiz de forma idêntica ao código do instrutor. E como ele, também fiz no sublime text; ao contrário do meu o dele roda tranquilo. Levando o mesmo código para o "Dev C++", ele compila e roda tranquilo, inclusive consigo perceber o que você me disse: executo o código, e não há uma saída do laço fico chutando letras sem fim. Mas acho que o instrutor deve tratar isso nas próximas aulas. Enfim, essa questão do sublime me deixou encucado.