Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/03/2015, 07:53
Daniel159
 
Fecha de Ingreso: marzo-2015
Mensajes: 3
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Copiar array cadena caracteres

Si, tiene que ser con char * y no puedo utilizar vector, setFiles esta dentro de la clase solo que no había copiado todo.

.h
Código:
#ifndef WINDOW_DIRECTORIES_h
#define WINDOW_DIRECTORIES_h

class WindowDirectories {
private:
	int numFiles;
	char *files[];

	
public:	
	void setFiles( char *files[], int numFiles );
};
#endif

.cpp
Código:
void WindowDirectories::setFiles( char *files[], int numFiles )
{
	this->files = new char * [numFiles]; //esto no compila
	for ( int i = 0; i < numFiles; i++)
	{
		this->files[i] = new char[strlen(files[i])+1];
		strcpy( this->files[i], files[i] );
	}
	this->numFiles = numFiles;
}
Utilizaba malloc porque no sabia como hacer esto con un new, lo he cambiado por:

Código:
this->files[i] = new char[strlen(files[i])+1];
		strcpy( this->files[i], files[i] );
El error del
Código:
this->files = new char * [numFiles];
es esthe:

Código:
In member function ‘void WindowDirectories::setFiles(char**, int)’:
error: expected type-specifier before ‘*’ token
error: incompatible types in assignment of ‘int**’ to ‘char* [0]’
error: expected `;' before ‘char’
El error lo da justo en la linea del new

Código:
this->files = new char * [numFiles];
Gracias.
Un saludo.