Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ruggine passaggio matrice a sottoprogramma
Forum - C/C++ - ruggine passaggio matrice a sottoprogramma

Avatar
arovandi (Normal User)
Newbie


Messaggi: 5
Iscritto: 12/11/2012

Segnala al moderatore
Postato alle 18:23
Mercoledì, 19/12/2012
MAIN:
#include <stdio.h>
#include <iostream>
#include <string>    
#include "array2.h"
#include<stdlib.h>

using namespace std;

int main (){
// Creazione matrice A        
float A[2][2];                    

NewMatrixA(&A[2][2]); <------errore
                  
for (int i=0;i<1;i++){
         for(int j=0;j<1;j++){
             cout<<A[j]<<endl;
              system("pause");
                    }
                    }                  
return 0;
       }

Sottoprogramma
float NewMatrixA(float *A[2][2]){
      float vett_A[4]={1.1,1.2,1.3,1.4};
int i,j;
int a=0;

for (i=0;i<1;i++){
    for(j=0;j<1;j++){
        
        *A[j]=vett_A[a];
        a=a+1;  
}
}
}
              
ho questo errore: cannot convert `float' to `float* (*)[2]' for argument `1' to `float NewMatrixA(float* (*)[2])'

essenzialmente quello che devo fare è passare una matrice vuota al sottoprogramma che me la restituisce piena prendendo i valori da quel vettore.

vi ringrazio in anticipo

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:51
Mercoledì, 19/12/2012
Ciao!

Il passaggio di una matrice bidimensionale avviene in questo modo:

Alla dichiarazione del sottoprogramma:
Codice sorgente - presumibilmente C/C++

  1. float NewMatrixA(float  A[][2])


La prima dimensione viene omessa, oppure:
Codice sorgente - presumibilmente C/C++

  1. float NewMatrixA(float  **A)



Mentre alla chiamata:
Codice sorgente - presumibilmente C/C++

  1. float A[2][2];
  2. // ...                    
  3. NewMatrixA(A);



E' bene passare anche il numero di righe e colonne alla funzione.


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
arovandi (Normal User)
Newbie


Messaggi: 5
Iscritto: 12/11/2012

Segnala al moderatore
Postato alle 10:49
Giovedì, 20/12/2012
perfetto!!!!

grazie mille !!!! maledetta ruggine :D

PM Quote
Avatar
allen05 (Normal User)
Newbie


Messaggi: 1
Iscritto: 02/02/2013

Segnala al moderatore
Postato alle 6:25
Sabato, 02/02/2013
come posso usare il comando cat di linux in un programma c++?


jimmy
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 11:40
Sabato, 02/02/2013
Testo quotato

Postato originariamente da allen05:

come posso usare il comando cat di linux in un programma c++?  



La tua domanda è fuori tema.
Apri una nuova discussione su un' apposita sezione.


Nulla va più veloce della luce, quindi rilassati.
PM Quote