Jak utworzyć tablicę za pomocą Malloc w programowaniu C

Jak utworzyć tablicę za pomocą Malloc w programowaniu C

W programowaniu C tablica służy do przechowywania zakresu wartości tego samego typu danych i zajmuje przestrzeń w pamięci, która może być statyczna lub dynamiczna. Malloc jest funkcją stosowaną w programowaniu C do dynamicznej alokacji pamięci.

W tym artykule dowiemy się o funkcji Malloc, aby utworzyć tablicę w programowaniu C.

Co to jest Malloc () w programowaniu C

Pamięć dynamiczna jest przydzielana do programu podczas jego wykonywania zgodnie z potrzebną przez niego przestrzenią. W pamięci statycznej stała pamięć jest przydzielana do programu przed wykonaniem programu, który ma następujące wady:

  • Tablica zadeklarowana z ustalonym rozmiarem zajmie stały rozmiar pamięci systemowej
  • Jeśli tablica ma wartości mniejsze niż zadeklarowany rozmiar, wolna przestrzeń będzie marnotrawstwem i nie może być używana przez inny program
  • Jeśli tablica ma wartości więcej niż zadeklarowany rozmiar, program może dać błędy

Aby uniknąć tych wad, użyjemy schematu dynamicznego alokacji pamięci, ponieważ ten schemat przypisuje pamięć bloku potrzebnego przez program podczas jego wykonania. Pamięć dynamiczna ma różne funkcje używane jako wskaźnik do programu.

Funkcja Malloc () oznacza „alokacja pamięci” i jest używana do dynamicznej alokacji pamięci podczas wykonywania programu. Gdy wywoływana jest funkcja Malloc (), wysyła żądanie bloku pamięci do sterty (jest to segment pamięci, w którym pamięć jest przydzielana losowo). Jeśli sterta ma pamięć równoważną temu blokowi pamięci, zaakceptuje żądanie i przypisuje ten rozmiar do funkcji Malloc () w stosunku do jego żądania, a jeśli nie ma pamięci, zwróci wartość zerową. Kiedy skończymy z blokiem pamięci, możemy go wyczyścić za pomocą funkcji free (), aby blok pamięci mógł się uwolnić i być używany przez inne instrukcje programu. W celu dynamicznego alokacji pamięci musimy uwzględnić „stdlib.h ”w plikach nagłówka i ogólnej składni za pomocą funkcji Malloc jest:

1
$ pointer = (castType*) malloc (rozmiar);

Możemy użyć dowolnej zmiennej zamiast „wskaźnika”, a następnie możemy zastąpić „CastType” typem danych, którego wartości będą przechowywać w tablicy. Następnie użyj funkcji Malloc () i wspomnij o wielkości potrzebnej pamięci.

Jak używać funkcji Malloc w programowaniu C, aby utworzyć tablicę

Aby lepiej zrozumieć tworzenie tablicy za pomocą funkcji Malloc (), stworzymy program. Aby użyć programowania C w Linux, musimy zainstalować kompilator GCC za pomocą polecenia:

1
$ sudo apt instal gcc

Utwórz plik tekstowy za pomocą edytora Nano:

1
$ nano myfile.C

Wpisz następujący kod:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Uwzględnij # Uwzględnij
int Main (void)

int rozmiar, ja, *my_Array;
printf („\ n proszę wpisać rozmiar tablicy:”);
Scanf („%d” i rozmiar);
my_array = (int *) malloc (rozmiar * sizeof (int));
printf („\ n Wprowadź wartości tablicy:”);
dla (i = 0; iScanf („%d” i my_array [i]);
printf („\ n Wartości w tablicy to:”);
dla (i = 0; iprintf („%d”, my_array [i]);
printf („\ n”);

Zapisz skrypt o nazwie „myfile.c ”za pomocą Ctrl+S, a następnie wyjdź z edytora, naciskając Ctrl+x. Po jego zapisaniu skompiluj kod i sprawdź, czy występują jakieś błędy, czy nie za pomocą polecenia:

1
$ gcc myfile.c -o myfile

„Myfile” będzie plikiem wykonywalnym, uruchom „myfile” za pomocą polecenia:

1
$ ./mój plik

Program został pomyślnie wykonany. Wyjaśnienie powyższego kodu jest jako:

  • Dołączyliśmy biblioteki C, które są stdlib.H dla dynamicznej alokacji pamięci i Stdio.H dla innych funkcji, takich jak printf I Scanf
  • Zainicjowaliśmy główny organ programu z pustką, ponieważ funkcja nie zwróci wartości
  • Zadeklarowaliśmy dwie zmienne, I i wskaźnik „*my_array"
  • Po prostu użyłem printf polecenie wydrukowania „Wprowadź rozmiar tablicy”I zapisałem dane wejściowe przez użytkownika w zmiennej”rozmiar"
  • Następnie używając funkcji Malloc, poprosił stertę do przypisania pamięci zgodnie z wartością zapisaną w „rozmiar”Zmienna i przypisała pamięć do tablicy
  • Poprosił użytkownika o wprowadzenie wartości tablicy i przechowywanie ich w tablicy za pomocą pętli dla
  • Wreszcie wydrukowałem wszystkie wartości my_array Korzystanie z pętli dla

Wniosek

Funkcja Malloc () jest używana w dynamicznej alokacji pamięci i może być również używana do przechowywania wartości w tablicy. W tym artykule omówiliśmy, jak zadeklarować i korzystać z tablicy za pomocą funkcji Malloc (). Podejście dynamicznego alokacji pamięci jest zalecane, gdy chcesz zmienić rozmiar tablicy podczas wykonywania programu.