Problemapassaggio di puntatori

di il
8 risposte

Problemapassaggio di puntatori

Salve ragazzi dopo quasi 2 anni dall'ultima volta che ho usato i puntatori ho un problema veramente banale da risolvere ma non ricordando la sintassi non riesco proprio, ho un problema a passare dei puntatori a delle funzioni vi posto un semplice esempio che ho creato solo per cominciare:

#include <stdio.h>
void acquiscisci(int*,int*,int);
void ordina(int*,int*,int);

int main(int argc, const char * argv[])
{int vet[5],vet2[5],size;
    int *punt,*punt2;
    
    punt =vet;
    punt2=vet2;
    
    
    size=10;//dimensione totale dei vettori
    acquiscisci(punt,punt2,size);
    ordina(punt,punt2,size);
    
    return 0;
}




void acquisisci(int &vet,int &vet2,int size)
{
    printf("ciao");

}

void ordina(int &vet1 ,int &vet2,int size){

    printf("ciao");

}

8 Risposte

  • Re: Problemapassaggio di puntatori

    Mi sa che stai mischiando C e C++. Quell'ampercent nei parametri delle funzioni porterebbe a pensare che tu stia scrivendo pensando al C++.
    Intanto decidi se vuoi scrivere un programma in C o in C++
    Poi qualcuno ti aiuterà. Ne sono sicuro.
  • Re: Problemapassaggio di puntatori

    Scusami quando lo facevo lo facevo in c++ ora mi serve farlo in c credevo che la sintassi era la stessa
  • Re: Problemapassaggio di puntatori

    OK. Siamo d'accordo, parliamo di C? Allora, togli di mezzo i puntatori e passa direttamente gli array e tutto andra bene.
    CIao.
  • Re: Problemapassaggio di puntatori

    Ehh caro amico mio anche io la penso così per quanto rigurarda c...ma purtroppo il mio prof dell'uni vuole un programma con i puntatori strutturato così
  • Re: Problemapassaggio di puntatori

    Allora fai le cose per bene.
    Nella dichiarazione delle funzioni metti un parametro puntatore e nel corpo della funzione utilizza l'incremento del puntatore tipo *(punt+k) per indicizzare il vettore corrispondente oppure usa le quadre punt[k].
    Spero di esserti stato di aiuto. Se hai bisogno di altro fammi sapere. Ciao.
  • Re: Problemapassaggio di puntatori

    Lo potresti mostrare tramite 1 esempio? grazie
  • Re: Problemapassaggio di puntatori

    Eccolo:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    void acquisisci(int *vet1,int *vet2,int size);
    void ordina(int *vet1 ,int *vet2,int size);
    
    
    int main(int argc, const char * argv[])
    {
      int vet1[5] = {0,1,2,3,4},vet2[5]={5,6,7,8,9},size;
      int *punt1,*punt2;
        
      punt1=vet1;
      punt2=vet2;
      
      size=10;//dimensione totale dei vettori
    
      acquisisci(punt1,punt2,size);
      ordina(punt1,punt2,size);
        
      return 0;
    }
    
    
    
    
    void acquisisci(int *vet1,int *vet2,int size)
    {
        printf("\n vet1[1]= %d",vet1[1]);
    
    }
    
    void ordina(int *vet1 ,int *vet2,int size){
    
         printf("\n vet2[1]= %d",*(vet2+1));
    
    }
    
    Compilalo ed eseguilo.
    Prova a invertire le notazioni *() e [] finché non ti senti a tuo agio.
    Spero ti sia d'aiuto.
    Ciao
  • Re: Problemapassaggio di puntatori

    Grazie gentilissimo!
Devi accedere o registrarti per scrivere nel forum
8 risposte