Es que en c++ no se usa el malloc. En c++, utilizamos el new (para utilizar el monton (heap)):
Código:
sockaddr_in *local_address = new sockaddr_in();
o mejor, utilizamos la pila (stack):
Código:
sockaddr_in local_address;
La idea del malloc consiste en manipular directamente la memoria, en termino de bits reservados.
En C++, la idea es de no preocuparse de la memoria. Es decir que la capa objeto está supuesta encargarse ella de la memoria; y entonces la idea en C++ es de manejar bien la capa objeto, de manera que "abajo" todo se quede bien, sin preocuparse de este "abajo".
El malloc es tipicamente algo que g++ sigue conociendo por razones de compatibilidad, pero no entra en la "filosofia" del c++. En c++ hacemos un new, o mejor, creamos objetos en la pila (la capa objeto se encarga de reservar la memoria que se necesita, y lo magico del c++, es que está capa se encarga tambien de liberarla), es decir como cualquier variable (la idea es de manejar todos lo tipos que tienen semantica de valor igual que se maneja un tipo nativo).