#include //#include int *compress_array(const int *input, int n, int *out_size){ if (input == NULL) return NULL; int taille = 1; for (int i = 0; i < n -1; i++) if(input[i] != input[i + 1]) taille ++; *out_size = taille * 2; int *rslt = malloc(*out_size * sizeof(int)); if (rslt == NULL) return NULL; int index_rslt = 0; int index = 0; while(index < n){ int ch_cons = 0; int chiffre = input[index]; while (index < n && input[index] == chiffre){ ch_cons ++; index ++; } rslt[index_rslt ++] = chiffre; rslt[index_rslt ++] = ch_cons; } return rslt; } /* int main(){ int test[] = {3, 3, 3, 1, 1, 5, 5, 5, 5}; int sortie = 6; int *rs = compress_array(test, 9, &sortie); for(int i = 0; i < sortie; i++){ printf("%i;", rs[i]); } free(rs); }*/