Witam wszystkich.
Mam tu programik który ma stworzyć tablice dynamiczną zawierającą dodatnie elementy tablicy dane o rozmiarze n , funkcja ma też zwrócić jej adres. A więc zrobiłem o to taki programik:
#include <iostream>
using namespace std;
int *tablica(int dane[],int n){
int x=0;
int *tablica;
tablica=new int [x];
for (int i=0;i<n;i++){
x++;
if(dane[i]>0)
tablica[x]=dane[i] ;
else x--;
}
for (int i=0;i<=x;i++){
cout<<"tablica;"<<tablica[i]<<endl;
}
return tablica;
}
int main() {
int dane[10]={2,5,6,5,123,-5,5,-12,3,43};
tablica(dane,10);
return 0;
}
Problem w tym że nie wiem jak inaczej to napisać by program zaczynał przypisywanie elementów do tablica[0] , bo jak widać przypisywanie zawsze zaczyna się od tablica[1] a w tablica[0] wywala jakieś liczby z kosmosu .Wiem że wypisywanie mogę zrobić inaczej:
for (int i=1;i<=x;i++){
cout<<"tablica;"<<tablica[i]<<endl;
}
wtedy to dobrze wygląda ale mi by zależało na tym aby przypisywanie zaczynało się od tablica[0]. Wydaje mi się że da się to jakoś inaczej napisać tylko nie mam pojęcia jak :-( .Był bym wdzięczny jak by ktoś dał mi wskazówkę jak to pozmieniać. Dodam jeszcze że dopiero jestem na etapie uczenia się wskaźników.