Bonjour,
J'ai écrit un programme (calculant des indices de sensibilité pour mon stage de 2A) qui nécessite d'initialiser tout plein de zones mémoire (pour aller plus vite):
Contrairement aux apparences c'est bien du C++ ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
En revanche:
- Ca marche avec dev-cpp sous windows
- Ca plante systématiquement avant la fin des allocations avec g++ sous Unix; message d'erreur:
(gdb) run e Parametres/paramE_hs.dat hs 1000 100
Starting program: /home/iooss/benjamin/main e Parametres/paramE_hs.dat hs 1000 100
Program received signal SIGSEGV, Segmentation fault.
0x42074675 in _int_malloc () from /lib/tls/libc.so.6
(gdb) bt
#0 0x42074675 in _int_malloc () from /lib/tls/libc.so.6
#1 0x4207378d in malloc () from /lib/tls/libc.so.6
#2 0x0804ebcb in entrop ()
#3 0x0804adff in main ()
#4 0x42015704 in __libc_start_main () from /lib/tls/libc.so.6
Faut-il que je transforme tous mes "malloc" en "new" ?
Ce qui m'embête c'est que le code suivant fonctionne sous Unix avec g++:
alors que les allocations nécessaires sont plus grandes que dans le cas précédent (n de l'ordre de 100, S peut atteindre 500000, 1000000..etc).
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
Je n'y comprend rien (comme d'habitude :-/)
Merci d'avance,
Benjamin.

 

 
		
		 
         
 

 
			
			

 
   


 Malloc => segFault
 Malloc => segFault
				 Répondre avec citation
  Répondre avec citation
Partager