#include #include #include int check_old_pc(int pc, int list_pc[]) { int ret = 0, i = 0; while (!ret && i <= 1024 && list_pc[i] >= 0) { if (list_pc[i] == pc) ret = 1; i++; } return ret; } void init_list_pc(int list_pc[]) { for (int i = 0; i < 1024; i++) list_pc[i] = -1; } void prem_partie(FILE *ptr) { int i = 0, a = 0, pc = 0, nbpc = 0; int list_pc[1024]; char *buffer = NULL, *ope; char *all_ope[1024]; size_t size_buffer = 0; for (int j = 0; j < 1024; j++) all_ope[j] = (char *) malloc(sizeof(char) * 1024); init_list_pc(list_pc); while (!feof(ptr)) { getline(&buffer, &size_buffer, ptr); if (*(buffer + strlen(buffer) - 1) == '\n') *(buffer + strlen(buffer) - 1) = '\0'; strcpy(all_ope[i], buffer); i++; } free(buffer); while (!check_old_pc(pc, list_pc)) { list_pc[nbpc] = pc; nbpc++; buffer = (char *) calloc(1024, sizeof(char)); strcpy(buffer, all_ope[pc]); const char *espace = " "; ope = strtok(buffer, espace); if (!strcmp(ope, "acc")) { ope = strtok(NULL, espace); a += atoi(ope); pc++; } else if (!strcmp(ope, "jmp")) { ope = strtok(NULL, espace); pc += atoi(ope); } else pc++; free(buffer); } for (int j = 0; j < 1024; j++) free(all_ope[j]); printf("L’accumulateur contient la valeur %d\n", a); } void deux_partie(FILE *ptr) {}