我正在编写代码,以从具有指针类型变量的结构中写入和读取信息,到目前为止一切正常,但是,当我尝试使用system(“ CLS”)清理屏幕时;程序退出,但这仅在读取字符串persona [cx] .nombre之后才会发生。
我尝试使用不同的方式读取字符串(getchar(),scanf(“%s”)和scanf(“%c)),但这似乎无济于事。我想这个问题与指针变量,因为指针和结构对我来说都是新的,所以也许我缺少了一些东西。
这是我到目前为止编写的代码:
struct datos{
char nombre[30];
int edad;
char sexo;
} *persona;
void arreee(int *);
int main(){
int me = 0;
persona = malloc(sizeof(char[1]));
printf("\n Repeticiones: ");
scanf("%d", &me);
fflush(stdin);
persona = realloc(persona, me);
arreee(&me);
printf("\n. . .\nDone! %d\n. . .\n>", me);
getchar();
return 0;
}
// funciones
void arreee(int *e){
int cx, i;
for(cx = 0; cx < *e; cx++)
{
printf("\nsexo? m/f\n> ");
scanf("%1c", &persona[cx].sexo);
fflush(stdin);
printf("\nnombre> ");
fgets(persona[cx].nombre, 30, stdin);
fflush(stdin);
printf("\nedad> ");
scanf("%d", &persona[cx].edad);
fflush(stdin);
system("cls");
}
for(i = 0; i < *e; i++)
{
printf("Sexo %c Edad %d Nombre %s", persona[i].sexo, persona[i].edad, persona[i].nombre);
}
}