Tablica jednowymiarowa

0

Cześć, Chciałbym się dowiedzieć jak w jezyku C, stworzyć tablice dla której, osoba odpalająca moj program, bedzie mogla określić liczbę jej elementow?

Chciałbym aby uzytkownik, w moim programie mógl sam okreslic ilu elementowa tablice chce posortować,

3

man 3 malloc

0

Mógłbym poprosić o kod, ktory zaprezentuje jak dziala ta funkcja?

0

Szukaj pod tablica dynamiczna. Nie wiem czy to jeszcze istnieje, ale w przypadku kompilatora GCC dało się kiedyś dać rozmiar tablicy jako zmienną wczytywaną z klawiatury.

4

C99 obsługuje VLA więc można zrobić:

int main()
{
    int size;
    scanf("%d", &size);
    int arr[size];
}

Ewentualnie tak jak wyżej napisano, używając malloc:

int main()
{
    int size;
    scanf("%d", &size);
    int *arr = (int*)malloc(sizeof(int) * size);
    // Pamiętaj o zwolnieniu pamięci:
    free(arr);
}

Do malloca podajesz rozmiar jaki chcesz (w bajtach). sizeof(int) zwraca rozmiar w bajtach jednej zmiennej typu int więc należy pomnożyć to z ilością jaką chcesz mieć. Następnie zwrócony zostanie wskaźnik na przydzielony obszar tablicy albo NULL gdy przydzielenie pamięci się nie powiodło (z braku dostępnego miejsca).

0

Dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1