hacer Strcpy o una copia hacia un puntero doble con los datos de un tipo String

Hola tengo el problema que me han dejado realizar una pequeña modificación a un código pero esta me decía que solo sustituyera las variables de tipo “Char *” y ponerla en tipo “string” el problema es que en una parte del código este usa “Char **” y este intenta hacer una copia con strcpy para que los “Char **” tengan la misma información de los que ahora son tipo “String” el problema es mas que todo de sintaxis ya que no se como podria solucionar este problema sin modificar los que actualmente siguen siendo “Char **” y seguir usando “string” en los que antes eran “char *” y si he problado hacerlo como si de una cadena string se tratase “string=string” pero no funcionan.

Dejaré el código del las libreria de mi clase y de donde se encuentra el problema.

#ifndef _PARTICIPANTE_H_ #define _PARTICIPANTE_H_ #include <string> using namespace std; class CParticipante { private: //Datos miembros     string nombre;     string apellido;     char sexo; //masculino o femenino     string lugar_nacimiento; //ciudad y pais     string pais_residencia;     string doc_identidad; //cedula, carnet, pasaporte     string telefono; //(505)311-4012     string e_mail;  public:     //funciones miembros publicas     CParticipante();     CParticipante(string, string, char, string, string, string, string, string);     ~CParticipante();     CParticipante(const CParticipante&);     CParticipante& operator=(const CParticipante&);     void SetParticipante(string, string, char, string, string, string, string, string);     //recibe 8 parametros y los almacena en las variables correspondientes     //al objeto que recibe el mensaje     void GetParticipante(char**, char**, string, char**, char**, char**, char**, char**) const;     //obtener un participante, permite el acceso a los datos del objeto que recibe el mensaje };  bool Verificar_Documento(string); //verifica si el doc_identidad es correcto  bool Verificar_Telefono(string); //verifica si el telefono es correcto  bool Verificar_Correo(string); //verifica si el correo es correcto  void EscribirParticipante(const CParticipante&);  int Menu();  #endif  void CParticipante::GetParticipante(char** nom, char** apell, string sex, char** lugar, char** pais, char** doc, char** tel, char** correo) const {     //Asignar memoria a los datos a retornar     *nom = new char[nombre.length() + 1];     *apell = new char[apellido.length() + 1];     *lugar = new char[lugar_nacimiento.length() + 1];     *pais = new char[pais_residencia.length() + 1];     *doc = new char[doc_identidad.length() + 1];     *correo = new char[e_mail.length() + 1];     *tel = new char[telefono.length() + 1];      //Copiar los valores de los datos miembros del objeto a las variables a retornar      strcpy(*nom, nombre);      strcpy(*apell, apellido);      sex = sexo;      strcpy(*lugar, lugar_nacimiento);      strcpy(*pais, pais_residencia);      strcpy(*doc, doc_identidad);      strcpy(*tel, telefono);      strcpy(*correo, e_mail); } 

Swing-Component en JTable, por algun motivo desaparece con doble click.Por favor ayudenme a renderizar esta tabla

public class TablaVenderProducto extends JTable {

private Class[] columnTypes = new Class[] { String.class, Object.class, Double.class, Double.class, java.lang.Object.class }; private boolean[] columnEditables = new boolean[] { true, true, true, true, true };   private JTextField nombreProducto=new JTextField(); private JSpinner cantidadAV=new JSpinner(); private JButton delete=new JButton("x"); private Object[] fila=new Object[]{ nombreProducto, cantidadAV, null, null, delete };  private DefaultTableModel model=new DefaultTableModel(new Object[][] {      { nombreProducto, cantidadAV, null, null, delete },     },         new String[] { "Producto", "No a Vender", "Precio U", "Total", "" }) {      public Class getColumnClass(int columnIndex) {         return columnTypes[columnIndex];     }      public boolean isCellEditable(int row, int column) {         return columnEditables[column];     } };  public TablaVenderProducto() {     // TODO Auto-generated constructor stub      setRowSelectionAllowed(false);     setModel(model);      setDefaultRenderer(Object.class,new Render());     getColumnModel().getColumn(0).setPreferredWidth(213);     getColumnModel().getColumn(1).setPreferredWidth(52);     getColumnModel().getColumn(2).setPreferredWidth(50);     getColumnModel().getColumn(3).setPreferredWidth(50);     getColumnModel().getColumn(4).setPreferredWidth(20);  } 

class Render extends DefaultTableCellRenderer{

@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,         boolean hasFocus, int row, int column) {      if (value instanceof JTextField) {         JTextField tField = (JTextField) value;         return tField;     }     if (value instanceof JButton) {         JButton btn = (JButton) value;         return btn;     }     if (value instanceof JSpinner) {         JSpinner spin = (JSpinner) value;         return spin;     }      return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 

}