Originariamente inviato da ilmo lesto
se io, anzichè assegnare l'idirizzo di string1 a string2, avessi copiato i caratteri con strcpy, in questo caso ovviamente avrei prima dovuto allocare la memoria per string2...
Beh, sì. Allocavi sufficiente memoria per la stringa, assegnavi l'indirizzo del blocco a string2 e quindi copiavi da string1 a string2 con strcpy.


Originariamente inviato da ilmo lesto
codice:
typedef struct tag_stackNode{
	
	char string[SIZE_BUF];
	struct tag_stackNode *nextPtr;
	
} StackNode;

typedef StackNode *stacknodePtr;

char *stackTop (stacknodePtr headPtr){
	
	char *str;
	
	str = headPtr->string;
	
	return str;
	
}
Mettiamola così: qualcuno chiama la funzione stackTop() passando l'indirizzo di una struttura StackNode e si presuppone che non sia un NULL e che la struttura sia correttamente allocata da qualche parte (se sullo stack o sul heap non ha importanza).
Tu prendi l'indirizzo del campo 'string', lo metti in str e poi lo restituisci. Punto.