Witam. Chciałbym zrobić dla dowolnego typu tablic funkcję, która dodaje na koniec tablicy (zwiększa ją o jeden) jakąś wartość, intową, charową itd. Napisałem takie coś:
//Funkcja poszerzajaca tablice i dodajaca nowa wart. na koniec
template <typename TArray, typename TValue>
TArray * Add_to_array(TArray * array, TValue value, int n)
{
TArray * tmp = new TArray[n+1];
TArray * new_array = new TArray[n+1];
for(int i=0; i<n; i++)
{
tmp[i] = array[i];
delete [] array[i];
}
for(int i=0; i<=n; i++)
{
new_array[i] = tmp[i];
if(i<n) delete [] tmp[i];
}
return new_array;
}
//oraz jej wywolanie
char * Arr_file_names;
//tu jakas petelka jest, zmienia sie wartosc Folder->d_name i chce dodac ja na koniec tablicy
Arr_file_names = Add_to_array(&Arr_file_names, Folder->d_name, i);
Jednak wypluwa mi błąd który dotyczy przypisania przy wywołaniu chyba
modules/file_loader.h:29:70: error: cannot convert ‘char**’ to ‘char*’ in assignment
- Co jest nie tak? Czy ta funkcja ma prawo działać?
- Czy moje usuwanie jest poprawne?