Euh non, il passe le nom du tableau donc c'est une adresse qui est reçue par la fonction (pfff je fais plus de C depuis un an alors suis un peu rouillé mais c'est quand-même bien ce qu'il me semble)
caliban47 a écrit :
le code de la pocedure est :
void push_m(int & nivel, float matrix[10][3][3])
{
int i,j;
nivel=nivel+1;
for (i=0;i<3;i++)
{
for(j=0;j<3;j++) matrix[nivel][i][j]=matrix[nivel-1][i][j];
}
}
et l'appel a la procedure est :
int main(){
float pila[10][3][3];
int estado;
int i,j;
for (i=0;i<3;i++){
for(j=0;j<3;j++){
if(i==j) pila[0][i][j]=1;
else pila[0][i][j]=0;
}
}
push_m(estado,pila);
return 0; }
Mais je ne pense que le probleme se situe au niveau du passage des parametres, enfin, c'est juste ce que je pense.
|
Pfff... venir poster un code C++ dans un forum C
Code :
- void push_m(int* nivel, float matrix[10][3][3])
- {
- int i,j;
- *nivel=(*nivel)+1;
- for (i=0;i<3;i++)
- {
- for(j=0;j<3;j++) matrix[*nivel][i][j]=matrix[*nivel - 1][i][j];
- }
- }
- int main(){
- float pila[10][3][3];
- int estado;
- int i,j;
- for (i=0;i<3;i++){
- for(j=0;j<3;j++){
- pila[0][i][j]=(i == j ?1 : 0);
- }
- }
-
- push_m(&estado, pila);
- return 0;
- }
|
Maintenant, étant donné que "estado" et "pila" semblent liés l'un à l'autre, l'intelligence voudrait qu'ils soient liés réellement via une structure. Ah évidemment ça demande une certaine remise en question mais quel putain de gain de temps par la suite !!!
Code :
- typedef struct {
- float pila[10][3][3];
- int estado;
- } t_monTruc;
- void push_m(t_monTruc *truc)
- {
- int i,j;
- truc->estado++;
- for (i=0;i<3;i++)
- {
- for(j=0;j<3;j++) truc->pila[truc->estado][i][j]=truc->pila[truc->estado - 1][i][j];
- }
- }
- int main(){
- t_monTruc truc;
- int i,j;
- for (i=0;i<3;i++){
- for(j=0;j<3;j++){
- truc.pila[0][i][j]=(i == j ?1 : 0);
- }
- }
-
- push_m(&truc);
- return 0;
- }
|
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.