ciao a tutti
ho dei problemi con l'allocazione di risorse.
ecco il codice.
molte cose non hanno senso nč utilitą, poichč č soltanto un esecizio.
l'ultima istruzione, la printf, mi stampa una stringa di 4 caratteri, e anche il campo size contiene 4. Dunque immagino che sto allocando spazio sufficiente per un semplice puntatore e non per i dati.

codice:
typedef struct {
	void *campo;
	size_t size;
} mystruct;
codice:
	// crea una nuova struttura
	mystruct nuova; 
	
	// crea un buffer di dimensioni stabilite (dovrei controllare il risultato di malloc..)
	void *buffer = malloc(500*sizeof(char));
	
	// copia i dati nel buffer (non ha senso ma č solo una prova, verrą sostituita da una funzione di lettura su stdin)
	strncpy(buffer, "prova prova prova prova", sizeof(&buffer));

	// alloca per il puntatore void di mystruct abbastanza spazio (che ora č noto) per contenere i dati del buffer
	nuova.campo = malloc(strlen(buffer));
	if(nuova.campo == NULL)
		return -1;

	// copia quindi i dati dal buffer al puntatore
	strncpy(nuova.campo, buffer, strlen(buffer));

	// copia la dimensione del messaggio nel campo apposito
	nuova.size = strlen(buffer);

	//qua dovrei rilasciare la memoria di buffer

	// verifica
	printf("%s %d", (char*)nuova.buf, nuova.size);
inoltre mi chiedevo se come principio č giusto quello di allocare dinamicamente la variabile buffer, poichč questo pezzo di codice dovrei usarlo spesso. Un alternativa sarebbe sovrascrivere di continuo il buffer, stavolta allocato staticamente. Quale delle 2 č meglio secondo voi?
mi scuso per l'evidente ignoranza in materia