refacor: use pointer and malloc
This commit is contained in:
@@ -180,13 +180,15 @@ int imortal_process() {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
double reads[readCount];
|
||||
// Dinamicamente alocar memória para as leituras
|
||||
double *reads = malloc(readCount * sizeof(double));
|
||||
|
||||
for (int i = 0; i < readCount; i++) {
|
||||
// rand é uma função de <stdlib> que retorna um número inteiro aleatório
|
||||
// entre 0 e RAND_MAX, nessa linha, ele está sendo dividio por RAND_MAX para
|
||||
// poder virar um double entre 0 e 1, e depois multíplicado por 100 para
|
||||
// virar um número entre 0 e 100.
|
||||
reads[i] = (double)rand() / (double)RAND_MAX * 100;
|
||||
reads[i] = ((double)rand() / (double)RAND_MAX) * 100;
|
||||
printf("Leitura %d: %.2f\n", i + 1, reads[i]);
|
||||
}
|
||||
|
||||
@@ -207,6 +209,7 @@ int imortal_process() {
|
||||
printf("Escolha uma opção: ");
|
||||
if (scanf("%d", &opt) != 1) {
|
||||
printf("ERROR: Falha ao ler a entrada do usuário.\n");
|
||||
free(reads); // Qualquer return tem que antes liberar a memória das leituras
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -235,6 +238,7 @@ int imortal_process() {
|
||||
// Verificação de falha para a função `verify_reads`
|
||||
if (verify_reads(reads, readCount) != EXIT_SUCCESS) {
|
||||
printf("ERROR: Falha ao verificar faixas das leituras.\n");
|
||||
free(reads);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
@@ -254,6 +258,7 @@ int imortal_process() {
|
||||
}
|
||||
case 0: {
|
||||
printf("Saindo do programa.\n");
|
||||
free(reads);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
// Checagem caso o usuário coloque uma operação que não existe, ou
|
||||
@@ -270,14 +275,17 @@ int imortal_process() {
|
||||
char res = 'n';
|
||||
if (scanf(" %c", &res) != 1) {
|
||||
printf("ERROR: Falha ao ler a entrada do usuário.\n");
|
||||
free(reads);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (res == 'n') {
|
||||
free(reads);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
free(reads);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -294,7 +302,7 @@ int main() {
|
||||
|
||||
// Iniciação da simulação do IMORTAL-1, com checagem de
|
||||
// erro para caso o processo tenha falhado por alguma razão.
|
||||
if (imortal_process() == EXIT_SUCCESS) {
|
||||
if (imortal_process() != EXIT_SUCCESS) {
|
||||
printf("Erro ao executar IMORTAL-1");
|
||||
return EXIT_FAILURE;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user