byron a écrit :
Je souhaite effectuer en C un calcul de matrice en donnant à la matrice de l'élément i le nom de Mi, i variant de 1 à n. Je n'y parviens pas. Deux problèmes se posent...
|
Peut-être peux-tu déclarer un tableau "M" de matrices. Ensuite tu accède à "M[i]" comme t'en as envie...
byron a écrit :
1°)Lorsque je déclare ma matrice Mi, elle est défini à l'intérieur d'une externe double, mais ma matrice doit etre de type static double pour être accessible par mes autres fonctions. Comment définir Mi ne connaissant pas i a priori?
|
Hum... je ne suis pas certain que tu aies une bonne connaissance de "extern" et "static"
Déjà, une variable déclarée en dehors de tout bloc est connue de toutes les fonctions écrites après la variable => variable globale
Une variable déclarée dans un bloc n'est connue que de ce bloc
Ensuite:
- extern en dehors de tout bloc (global) signifie que ta variable a été définie dans un autre source lié au même projet. Tu es obligé de déclarer ta variable pour que ton compilo ne râle pas devant une variable non connue mais tu peux pas la définir car elle a déjà été définie ailleurs et ça ralera à l'édition des liens => d'où la déclaration "extern <type> variable"
- extern dans un bloc signifie que tu redéclares dans le bloc une variable globale (déjà définie plus haut). C'est assez rare mais ça permet de montrer en début de bloc que tu vas utiliser la globale
- static en dehors de tout bloc permet d'isoler ta variable (ou ta fonction) et la rendre visible seulement dans le fichier source où se trouve la variable (ou la fonction) => permet d'avoir des variables (ou des fonctions) de même nom dans des sources distincts sans qu'il y ait intéraction
- static dans un bloc (donc dans une fonction) protège la mémoire associée à ta variable => quand tu reviens dans la fonction plus tard la valeur de ta variable a été conservée et peut être réutilisée => compteur d'appel par exemple
byron a écrit :
2°)Impossible d'attribuer Mi. J'ai essayé la concatenation de chaine de caractere, mais j'ai toujours un problème de type (char au lieu de double, et double au lieu de double[][] si je fais une conversion str to double)
|
Oui, j'en parlerai autour de moi pour faire rire...
Message édité par Sve@r le 20-04-2005 à 19:30:15
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.