Risposta veloce (vado di fretta )
Il C++ richiede sempre un cast al tipo di destinazione, mentre il C no.

Codice PHP:

node 
*malloc(sizeof(node));  // ok per il C, no per il C++

node *= (node*) malloc(sizeof(node)); // ok per il C++