w_ind puoi modificarla così:
codice:
    void pacco::w_ind(ofstream & of)const{
            of.write(indirizzo,strlen(indirizzo));
    }
poi vedendo come è fatta save_bin, l'ordine di lettura dev'essere rispettato.
Un funzione load_bin sarà più o meno fatta così.
codice:
    if.read((char*)&codice,sizeof(codice));
    if.read((char*)&peso,sizeof(peso));
    if.read((char*)&len,sizeof(len));
    // poi il puntatore 
    indirizzo = new char[len+1];
    if.read((char*(indirizzo),len)
    indirizzo[len] = '\0';
Domanda, non puoi usare std::string invece dei char* per le stringhe?