View Single Post
Old 19-11-2010, 15:33   #2
Supdario
Member
 
Iscritto dal: Mar 2008
Messaggi: 267
La cosa più semplice che puoi fare è sostituire il vettore di int con una struttura che contiene sia il vettore che la quantità di elementi.

Esempio veloce (non testato):

Codice:
typedef struct {
	int *num = NULL;
	size_t size = 0;
} vector;

void ridimensiona(vector *x, size_t dimensione)
{
	(*x).num = (vector *) realloc((*x).num, sizeof(int) * dimensione);
	(*x).size = dimensione;
}

void aggiungi(vector *x, int valore);
{
	ridimensiona(&(*x), (*x).size+1);
	(*x).num[size-1] = valore; 
}

int main()
{
	//[...]
	vector albero;
	aggiungi(&albero, 10);
	printf("Il primo elemento è %d e la dimensione è %d", albero.num[0], albero.size);
	//[...]
	return 0;
}
Questo dovrebbe mostrare "10" e "1", ma non so se funziona.

In ogni caso se hai la possibilità di usare il C++ i std::vector ti alleggerirebbero il lavoro di molto.

Ultima modifica di Supdario : 19-11-2010 alle 15:36.
Supdario è offline   Rispondi citando il messaggio o parte di esso