我在C语言上具有此功能:
#include "stdio.h"
#include "stdlib.h"
#include "locale.h"
#include "string.h"
typedef struct aliado {
char nome[20];
int forca, agilidade, inteligencia, vida;
} ALIADO;
ALIADO *atribuicaoAtributos(int classe)
{
system("cls");
ALIADO *vet;
vet = (ALIADO *) malloc(sizeof(ALIADO));
if(classe==1) {
printf("NOME DO SEU GUERREIRO: ");
gets(vet->nome);
vet->vida = 100;
vet->forca = 20;
vet->agilidade = 10;
vet->inteligencia = 5;
}
if(classe==2) {
printf("NOME DO SEU MAGO: ");
gets(vet->nome);
vet->vida = 100;
vet->forca = 5;
vet->agilidade = 10;
vet->inteligencia = 20;
}
if(classe==3) {
printf("NOME DO SEU KILLER: ");
gets(vet->nome);
vet->vida = 100;
vet->forca = 10;
vet->agilidade = 20;
vet->inteligencia = 5;
}
return vet;
}
当我调用此函数时,它可以正常工作,但到gets(vet-> nome)时,我的C程序就结束了。
有人知道这里发生了什么吗? 这就是我出现的内容: