Bonjour,
J'ai un code simple comme suit :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 #include <stdlib.h> #include <stdio.h> #include <string.h> #include <time.h> #include <ctype.h> int main (int argc, char **argv){ if(argc != 3){ printf("%d",argc); printf("Please, relauch program with the length of the two words\n"); return 1; } else{ char alphabet[28] = " abcdefghijklmnopqrstuvwxyz"; srand(time(NULL)); int integer; int i; // For the first word int lengthFirstWord = atoi(argv[1]); char firstWord[lengthFirstWord]; for (i = 0; i < lengthFirstWord; i++){ integer = rand() % (26) + 1; firstWord[i] = alphabet[integer]; } firstWord[i] = '\0'; // For the second word int lengthSecondWord = atoi(argv[2]); char secondWord[lengthSecondWord]; for (i = 0; i < lengthSecondWord; i++){ integer = rand() % (26) + 1; secondWord[i] = alphabet[integer]; } secondWord[i] = '\0'; printf("\nWords :"); printf("\n\t%s\n\t%s\n\n",firstWord, secondWord); return 0; } }
Ce code sert à générer deux mots dont la taille est passée en paramètres.
Ce programme sert à alimenter un programme de comparaisons de chaînes de caractères pour tester la complexité réelle de trois algos...
Bref, toujours est-il que je dois laisser tourner les algos au plus 5 minutes.
Mais j'ai l'impression qu'une erreur de mon code ci dessus se répercute ensuite dans le programme qui sera lancé en dépendance.
Je ne peux générer que des mots plus courts... Et pour le premier algo qui est très rapide, j'atteins rapidement la limite.
___
Si vous exécutez le code ci dessus, vous verrez qu'il compile bien...
Et qu'il se lance sans problème jusqu'à une certaine limite !
Citation:
deallyra@deal:/media/Lapinator/Complexite/_Sources/sandbox$ time ./sandbox 5238806 5238806
-- il va me générer correctement les deux mots
Enfin les bornes "varient".Citation:
deallyra@deal:/media/Lapinator/Complexite/_Sources/sandbox$ time ./sandbox 5238807 5238807
Erreur de segmentation
real 0m0.285s
user 0m0.252s
sys 0m0.004s
En ce qui me concerne, je me demande si c'est une erreur de code (probabilité 4/5) ou alors une limite de la machine (3/5)
Qu'en pensez vous ?
Comment changeriez vous ce code ?
Merci à vous
PS : ce post est un élément de réponse qui me permettra de répondre à un autre posé antérieurement...
Oui, je suis toujours sur ce problème -_-"