passage de matrice en parametre - C - Programmation
Marsh Posté le 20-01-2007 à 21:53:54
| bigears a écrit : j'ai une matrice 1000x1000...  
   | 
 
Déjà si t'étais cohérent entre la description de ton pb et ce que t'as écrit dans ton code... 
 
| bigears a écrit : Et bien sûr | 
 
Donc tu sais déjà qu'il y aura une erreur... 
 
| bigears a écrit : gcc me dit qu'il y un conflit de type.  | 
 
Oui: aller ici http://forum.hardware.fr/hfr/Progr [...] 0049_1.htm et lire mon post du 9 janvier dernier...
Marsh Posté le 20-01-2007 à 23:28:22
| bigears a écrit : j'ai une matrice 1000x1000 et je souhaite la remplir dans l'appel d'une fonction : 
 | 
Alors c'est 1000 ou 1200 ? De toutes façon, c'est trop gros pour être une variable locale. Je recommande 'static'.
| Code : 
 | 
| Citation : 
 
 | 
Ben oui...
http://mapage.noos.fr/emdel/notes.htm#param_tab
Il n'est pas inutile de relire son livre de C de temps en temps...
Marsh Posté le 21-01-2007 à 02:23:54
| bigears a écrit : Salu, j'ai une matrice 1000x1000 et je souhaite la remplir dans l'appel d'une fonction : 
 | 
livrons nous à un petit calcul...
une matrice de 1200*1200 contient donc 1 440 000 éléments
sachant qu'un élément tient sur 4 octets (on va dire ça, même si ce n'est pas toujours vrai), ça nous fait une occupation mémoire de 5 760 000 octets, soit 5 760 000 / 1024 = 5 625 Ko, soit 5.493 Mo !!!
t'as pas peur des stack overflows toi ![[:pingouino] [:pingouino]](https://forum-images.hardware.fr/images/perso/pingouino.gif)
edit: ![[:benou_grilled] [:benou_grilled]](https://forum-images.hardware.fr/images/perso/benou_grilled.gif)
Marsh Posté le 21-01-2007 à 14:47:09
| Harkonnen a écrit : ... = 5 625 Ko, soit 5.493 Mo !!! | 
 
Hé oui, seuls les vendeurs de disques durs croient (ou font semblant de croire) que 1Mo = 1000 ko alors que tout le monde (sauf eux) sait bien qu'il n'en est rien !!! 
 
| Harkonnen a écrit : edit:  | 
 
Oui, de 3h !!! On peut pas dire que tu sois un rapide du clavier toi ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif)
Marsh Posté le 21-01-2007 à 16:04:01
| Harkonnen a écrit :   | 
 
 
en fait le but du programme, c'est de comparer l'efficacité de différentes méthodes d'interpolation . 
 
Donc en gros, si le compilo arrive a m'allouer les 1200x1200 int tant mieux, sinon je trouverai une autre solution.(A priori, ca passe ) 
Petite question subsidiaire  : Est-il possible d'allouer un tableau 2D dans le tas, et d'y avoir un accès grace a l'operatreur[][] ?
 : Est-il possible d'allouer un tableau 2D dans le tas, et d'y avoir un accès grace a l'operatreur[][] ? 
 
(oui oui je sais j'ai quelques lacunes avec la memoire......^^)
Marsh Posté le 21-01-2007 à 17:10:05
| bigears a écrit : Est-il possible d'allouer un tableau 2D dans le tas, et d'y avoir un accès grace a l'operatreur[][] ?  | 
 
Oui. 
 
http://mapage.noos.fr/emdel/notes.htm#tabdyn_2d 
 
Mais comme je te l'ai dit, pour du quick'n dirty, static, ça passe. (pas en MS-DOS, bien sûr...) 
Marsh Posté le 20-01-2007 à 21:20:35
Salu,
j'ai une matrice 1000x1000 et je souhaite la remplir dans l'appel d'une fonction :
Et bien sûr, gcc me dit qu'il y un conflit de type.
une idée de ce qu'il faut faire?
merci