Mi sembra che per i vettori e le matrici, in C, sia indispensabile definirne le dimensioni. Non esiste proprio una maniera per riempiere un vettore o una matrice, ad esempio all'interno di un ciclo iterativo, che ad ogni iterazione riempia una precisa riga corrispondente al numero dell'iterazione e che si fermi quando il processo iterativo termina? Ripeto io non conosco a priori il numero di iterazioni che sono necessarie, ma voglio che il vettore e/o la matrice al termine abbiano una dimensione pari al numero di iterazioni complessive e che vengano progressivamente riempiti durante il processo. Una seconda domanda che in un certo senso si collega a ciò che ho già chiesto. Non è possibile modificare in itinere la dimensione di un vettore o matrice, oppure aggiungere un elemento o una riga successivamente? Cioè per esempio se creo un vettore, definendolo costituito da 5 elementi, posso in seguito aggiungere un sesto elemento e quindi trasformare il vettore originario in un vettore di 6 elementi? Grazie in anticipo a chi mi darà un aiuto. :)
Per quello esiste la programmazione dinamica, che permette al programmatore di allocare e deallocare un oggetto puntatore e gli array, ma devo ancora arrivarci in C(decidi quindi di dare tu ina dimensione al vettore da cambiare, secondo tue necessità e di gestire il suo tempo di vita). L'ho studiato in C++ che è suo cugino, diciamo.
Altrimenti puoi creare una funzione che restituisca l'indirizzo di quell'oggetto, utilizzando io vettore che porti per riferimento. Al suo interno crei un nuovo vettore con dimensione diversa, ci inserisci gli elementi del vettore passato come parametro e poi accedi alle altre celle se vuoi metterci qualcosa(di default le celle non inizializzate valgono 0). Alla fine dell'operazione restituisci l'indirizzo del vettore, che contiene il nuovo vettore. Anche qui necessiti di memoria dinamica, in quanto le copie create all'interno della funzione vengono deallocate
@@giuliopianese Per come l'ha scritto lui è inutile: di base ha spostato le operazioni necessarie per costruire il vettore e la matrice in una funzione
grazie per la spiegazione!
Perdona l'ignoranza, ma nel caso della matrice, non si potrebbe passare direttamente tutti e tre gli indirizzi della prima cella di ogni riga?
puoi per favore allegare il main per avere il testo grazie
Mi sembra che per i vettori e le matrici, in C, sia indispensabile definirne le dimensioni. Non esiste proprio una maniera per riempiere un vettore o una matrice, ad esempio all'interno di un ciclo iterativo, che ad ogni iterazione riempia una precisa riga corrispondente al numero dell'iterazione e che si fermi quando il processo iterativo termina?
Ripeto io non conosco a priori il numero di iterazioni che sono necessarie, ma voglio che il vettore e/o la matrice al termine abbiano una dimensione pari al numero di iterazioni complessive e che vengano progressivamente riempiti durante il processo.
Una seconda domanda che in un certo senso si collega a ciò che ho già chiesto. Non è possibile modificare in itinere la dimensione di un vettore o matrice, oppure aggiungere un elemento o una riga successivamente? Cioè per esempio se creo un vettore, definendolo costituito da 5 elementi, posso in seguito aggiungere un sesto elemento e quindi trasformare il vettore originario in un vettore di 6 elementi?
Grazie in anticipo a chi mi darà un aiuto. :)
Per quello esiste la programmazione dinamica, che permette al programmatore di allocare e deallocare un oggetto puntatore e gli array, ma devo ancora arrivarci in C(decidi quindi di dare tu ina dimensione al vettore da cambiare, secondo tue necessità e di gestire il suo tempo di vita). L'ho studiato in C++ che è suo cugino, diciamo.
Altrimenti puoi creare una funzione che restituisca l'indirizzo di quell'oggetto, utilizzando io vettore che porti per riferimento. Al suo interno crei un nuovo vettore con dimensione diversa, ci inserisci gli elementi del vettore passato come parametro e poi accedi alle altre celle se vuoi metterci qualcosa(di default le celle non inizializzate valgono 0). Alla fine dell'operazione restituisci l'indirizzo del vettore, che contiene il nuovo vettore. Anche qui necessiti di memoria dinamica, in quanto le copie create all'interno della funzione vengono deallocate
che al mercato mio padre comprò
malloc e calloc?
Sarà che sto argomento è complicato ma non ci sto capendo una sega ahahah
più che altro sembra inutile
@@giuliopianese Per come l'ha scritto lui è inutile: di base ha spostato le operazioni necessarie per costruire il vettore e la matrice in una funzione
Pero vai piano
fai una cosa il tempo di scrivere che ti ritrovo a scrive un'altra cosa prima dai!