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.