int i;
float *top;
top=(float *)calloc(1,sizeof(float));
for(i=0;i<11;i++){
*top=10-i;
top++;
top=(float *)calloc(1,sizeof(float));
}
top=top-11;//zawracanie do poczatku tablicy
for(i=0;i<11;i++)
printf("%f\n",top[i]);
free(top);
Alokuję jedną komórkę do tablicy top. Następnie w pętli dodaję do niej wartość po czym przesuwam wskaźnik, alokuję następną komórkę i powtarzam do zakończenia. Po zakończeniu pętli mam tablicę n-elementową zawierającą n elementów i jedną pustą komórkę(ostatnią). Chciałbym odczytać całą tablicę jednak nie wiem jak dostać się na jej początek. W zamieszczonym kodzie próbowałem przesunąć się do początku tablicy odejmując od wskaźnika liczbę n, ale to nie zadziałało(dlaczego?). Próbowałem też deklarować sztuczny wskaźnik w którym przechowuję pierwszy adres tablicy(ten przed wykonaniem pętli). To działało lepiej, jednak efekty również nie były przewidywalne(nie czytał wszystkich komórek).
Jak więc zawrócić do początku by móc operować na tablicy? Zdaję sobie sprawę, że ten problem można rozwiązać unikając problemu - np używając statycznych tablic albo deklarując w calloc rozmiar z góry. Zależy mi jednak na kontrolowaniu wielkości tablicy w trakcie wykonywania programu.