bonjour à tous;
tout est dans le titre, il s'agit d'un message d'erreur que j'arrive pas à contourner
donc je vous explique, il s'agit d'un code qui va générer des fichiers avec des nombres aléatoires , 4 variables sont passées en paramètre via argc[ ] et argv[ ], la 1ère est la taille d'un tableau utilisé dans le code, la 2ème servira dans le calcul des bornes des nombres aléatoires générés , les deux dernières portent le nom de deux fichiers parmi les fichiers qui seront générés .mon code fonctionnait bien au début, mais j'avais pas testé avec des grands nombres. maintenant, en faisant appel dans un script (une boucle for) je reçois ce message indiqué ci-haut !!!! j'ai réessayé alors avec le code séparé avec une des valeurs devant être passées dans la boucle (une 1ère instance par exemple que j'ai calculée à la main) et je reçois le même problème. j'ai alors pensé que je devais peut être penser à une allocation dynamique de la mémoire pour les tailles des tableaux ou alors c'est autre chose
voilà le code en totalité, mais la partie chargée de la génération des nombres est la 1ère partie, le reste a l'air de bien fonctionner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#include <stdio.h>
 
#include <stdlib.h>
 
#include <time.h>
 
//************************************** Générateur de machines
 
 
 
int main(int argc, char*argv[])
 
{
 
int nb_ligne;
 
int  nb=atoi(argv[1]);
 
int  max=100000;
 
int  copt=atoi(argv[2]);
 
int deb[nb],fin[nb];
 
int init[nb][max] ;
 
int somme[max];
 
int i,j,prov,test;
 
FILE* f_m = NULL , *fd=NULL, *fm=NULL;
 
 
 
f_m = fopen("machine1.txt", "w");
 
test=0;
 
 
 
do{
 
for (i=0;i<nb;i++)
 
{for (j=0;j<max;j++)
 
{init[i][j]=1;
 
/*fprintf(f_m,"%d  ",init[i][j]);}
 
fprintf(f_m,"\n");*/}}
 
 
 
 
 
 
 
for (nb_ligne = 0; nb_ligne < nb; ++nb_ligne)
 
{
 
 
 
	srand ( time(NULL) );		  
  	deb[nb_ligne]=(int)(rand() % ((copt/2)+1) +( copt/2)) + 1;
 
 
 
}
 
 
 
		  for (i=0;i<nb_ligne;i++)
 
		  {for (j=i+1;j<nb_ligne;j++)
 
		  {if (deb[j]>deb[i])
 
		  {prov=deb[i];
 
		  deb[i]=deb[j];
 
		  deb[j]=prov;}
 
		  }
 
		  }
 
 
 
        for (nb_ligne = 0; nb_ligne < nb; ++nb_ligne)
 
{
 
 
 
		 srand ( time(NULL) );
 
		fin[nb_ligne]=(int)(rand() % ((copt/2)+1) + copt)+1;
 
 
 
 
 
}
 
 
 
for (i=0;i<nb;i++)
 
{for (j=deb[i];j<fin[i];j++)
 
{init[i][j]=0;}
 
}
 
 
 
for (i=0;i<max;i++)
 
{somme[i]=0;
 
for (j=0;j<nb;j++)
 
{somme [i]=somme[i]+init[j][i];}
 
 
 
if (somme[i]==0)
 
{test=0;
 
break;}
 
else
 
test=1;
 
 
 
}  }
 
while (test==0);
 
/****************affichage de machine1.txt*******************/
 
	for (nb_ligne = 0; nb_ligne < nb; ++nb_ligne)
 
	fprintf(f_m,"\n%d %d\n",0,deb[nb_ligne]);
 
	for (nb_ligne = 0; nb_ligne < nb; ++nb_ligne)
 
	fprintf(f_m,"\n%d  %d\n",fin[nb_ligne],max);
 
/****************affichage de machine*******************/
 
fm = fopen(argv[3], "w");
 
for (i=0; i<nb; i=i+1)
 
{
 
fprintf(fm,"%d\t0\t%d\n%d\t%d\t%d\n%d\t100002\t100003\n",i+1,deb[i],i+1,fin[i]+1,max,i+1);
 
}
 
 
 
/********************affichage de perf********************/
 
 
 
fd = fopen(argv[4], "w");
 
for (nb_ligne = 0; nb_ligne < nb; ++nb_ligne)
 
{
 
    fprintf(fd, "%d\t  1",nb_ligne+1);
 
    fprintf(fd, "\n");
 
}
 
 
 
return(0);
 
}//fin main
j'attendrais vos réponses impatiemment s'il vous plaît