Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] Mi spiegate una volta per tutte come si passa un vettore ad una funzione???

    ogni volta che mi trovo a scrivere un programma nel quale devo passare un vettore ad una funzione incorro SEMPRE in numerosi errori tipo (manca *, non posso convertire "float" in "float"...ecc ecc...).
    sareste così gentili da spiegarmi come si passa un vettore che sia mono e pluridimensionale ad una funzione?

    c'è bisogno dell'ausilio dei puntatori???

    come devo dichiarare la funzione? e sopratutto come devo richiamala?????


    Vi ringrazio tutti anticipatamente!!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    La questione è che tu dovresti impararlo una volta per tutte ...

    Queste nozioni sono in un qualsiasi libro di C e riguardano elementi base del linguaggio.

    Hai uno specifico problema con del codice ?

    (o magari avresti potuto continuare questa discussione ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    Ciao ti faccio degli esempi:
    codice:
    #include <stdlib.h>
    #include <stdio.h>
    
    void Vettore1(int * v, int n);
    void Vettore2(int v[], int n);
    void Matrice1(int m[][3], int r, int c);
    void Matrice2(int (*m)[3], int r, int c);
    
    int main()
    {
        int vett[10];
        int mat[3][3];
        int i, j;
    
        for(i = 0; i < 10; i++)
        {
            vett[i] = i+1;
        }
    
        for(i = 0; i < 3; i++)
            for(j = 0; j < 3; j++)
                mat[i][j] = i + j;
    
        Vettore1(vett, 10);
        Vettore2(vett, 10);
        Matrice1(mat, 3, 3);
        Matrice2(mat, 3, 3);
    
        return 0;
    }
    
    void Vettore1(int *v, int n)
    {
        int i;
        printf("Stampa del vettore con la funzione Vettore1:\n");
        for(i = 0; i < n; i++)
        {
            printf("%d ", v[i]);
        }
    }
    
    void Vettore2(int v[], int n)
    {
        int i;
        printf("\n\nStampa del vettore con la funzione Vettore2:\n");
        for(i = 0; i < n; i++)
        {
            printf("%d ", v[i]);
        }
    }
    
    void Matrice1(int m[][3], int r, int c)
    {
        int i, j;
    
        printf("\n\nStampa della matrice con la funzione Matrice1:\n");
        for(i = 0; i < r; i++)
        {
            for(j = 0; j < c; j++)
                printf("%d ", m[i][j]);
            printf("\n");
        }
    }
    
    void Matrice2(int (*m)[3], int r, int c)
    {
        int i, j;
    
        printf("\n\nStampa della matrice con la funzione Matrice2:\n");
        for(i = 0; i < r; i++)
        {
            for(j = 0; j < c; j++)
                printf("%d ", m[i][j]);
            printf("\n");
        }
    }
    Proprio per il legame che c'è tra vettori e puntatori in c puoi fare come ti ho mostrato (non mi soffermo molto sulle varie spiegazioni, però se vuoi chiedi pure)

    Mentre per le matrici è un po' diverso perché il compilatore deve obbligatoriamente conoscere almeno il numero di colonne della matrice altrimenti altrimenti non sarà in grado di indirizzare correttamente i riferimenti alla matrice.
    Se qualcosa non ti è chiaro chiedi pure...


    PS:
    oregon chiedo venia, probabilmente hai scritto mentre io stavo rispondendo... ed in effetti non so se facendo gli esempi ti ho fatto "più male che bene", sono argomenti che comunque si trovano su di un qualsiasi libro...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da premoli
    PS:
    oregon chiedo venia, probabilmente hai scritto mentre io stavo rispondendo... ed in effetti non so se facendo gli esempi ti ho fatto "più male che bene", sono argomenti che comunque si trovano su di un qualsiasi libro...
    Nessun problema ... degli esempi sono sempre utili ... il fatto è che era già stata aperta una discussione simile da managerfx a cui non aveva fatto seguito pur avendo avuto risposte ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da managerfx
    sareste così gentili da spiegarmi come si passa un vettore che sia mono e pluridimensionale ad una funzione?
    Hai già aperto questa discussione sullo stesso problema, senza dare una risposta all'aiuto che è stato fornito; inoltre, le basi si studiano sui libri e sulla documentazione.

    Continua la discussione già avviata (e dai un'occhiata al Regolamento per sapere come si specificano i titoli delle discussioni).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.