Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    56

    [C/C++] vettore dinamico di puntatori a funzioni

    Ciao.. ho questo problema: mi serve un vettore dinamico di puntatori a funzioni...

    il puntatore all'array di puntatori l'ho dichiarato così:

    codice:
    void (**vertp)(float,float,float);
    quindi 1 puntatore a una funzione void ke vuole in ingresso 3 float..
    come faccio ad allocare dinamicamente tale vettore ??? e poi l'ho dichiarato bene con quel doppio punt ?? nn ho proprio idea di come scrivere il codice con la malloc...

    pleaseeeeeee

    ciao ciaooooo!


    PS... in pratico ho questo problema... sono con le openGL e devo disegnare una serie di punti a intervalli regolari.. ma nn so quanti sono all'inizio.. siccome le open funzionano ke richiamano in loop infinito le funzioni di disegno.. nn posso usare i cicli alla classic.. quindi aggiravo il problema così... la funzione x disegnare i punti è la
    codice:
    void glVertex3f(float,float,float)
    quindi allocavo dinamicamente 1 vettore di puntatori a funzioni del tipo della glVertex.. ke inizializzavo con un altra funzione degli stessi parametri ma ke nn fa nulla.. e poi man mano ke mi servono le attivo assegnandogli la giusta funzione con le coordinate giuste salvate in un array allocato sempre dinamicamente.. in modo ke faccio un unico ciclo for dentro la funzione di disegno e le chiamo tutte scorrendo l'array e mi si attivano solo quelle giute! si potrebbe fare diversamente?? :master: nn so se cmq mi sono spiegato...


    ciaooooouuu

    SommoVir.. Luca

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    56
    uffa ma nenke un aiutino.. se no mi devo mettere a fare codice random e a provare while(funziona)... sigh sobh

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    11

    Re: [C/C++] vettore dinamico di puntatori a funzioni

    La dichiarazione è giusta, vertp punterà ad oggetti di tipo void(*)(float,float,float) quindi nella malloc avrai questo:

    codice:
    vertp=malloc( sizeof(void(*)(float,float,float)) * N);
    che si puo' scrivere anche come:
    codice:
    vertp=malloc(sizeof *vertp * N);
    Comunque per rendere piu' leggibile la cosa,potresti usare un typedef per il tipo puntatore a funzione.

    Per le OpenGl passo...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    56
    Grazie mille.. ora accendo il portatile e lo provo.. ma scusa.. ma nn è obbligatorio il cast davanti alla malloc ? ho visto anke altre volte la malloc senza cast.. ma nn capisco il why...

    oh cmq grazie tante !!!!!

    ciaoooo

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    11
    La malloc (se correttamente prototipata) ritorna void* ,in C, la conversione void* <-> T* è implicita (in tutti e due i versi) ,in C++ invece non lo è ed in quel caso il cast è necessario.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    56
    quante ne sapete.. eheh Grazie x il chiarimento


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.