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

    [C] creare array di dimensione passata come variabile di una funzione

    Salve
    oggi mi sono scontrato con un bel problema che non ho trovato il modo di risolvere

    posso riassumerlo così:

    ho una funzione f(int kk)

    al cui interno vorrei dichiarare un array

    dtype data[kk];

    so che questo non è possibile perchè il compilatore vuole sapere a priori la dimensione di questo array.
    il problema è che questa funzione dovrebbe essere parametrica e questo valore vorrei acquisirlo come parametro del main.
    c'è qualche soluzione?
    vorrei evitare il #define da cambiare a mano ogni volta...

    sono vincolato all'utilizzo dell'array perchè ho una funzione già implementata che mi richiede proprio l'array...

    se necessario provo ad essere più esplicito...

    ciao e grazie per l'eventuale supprto

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Questo e' il caso di utilizzare l'allocazione dinamica del vettore.

    Usa un puntatore e la malloc. Non dimenticare la free quando il vettore non serve piu'.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    grazie mille, in effetti penso che sia l'unica strada...

    allora io mi creo un buffer di dimensione kk
    dtype *buffer;
    buffer=malloc( kk*sizeof(dtype)) ;
    poi però ho la mia funzione che prende
    f2(dtype data[]){}
    quindi se chiamo
    f2(buffer);
    dovrebbe funzionare giusto?

    dopo provo

  4. #4
    ok compila, grazie mille!

    speriamo funzioni pure

    il debug lo faccio domani, per stasera mi basta per andare a dormire sereno

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 © 2025 vBulletin Solutions, Inc. All rights reserved.