Zwykła tablica
Tablicę można utworzyć w normalnej pamięci w następujący sposób:
char arr [] = 'p', „q ',' r ',' s ',' t ';Aby usunąć tę tablicę, po prostu pozwól jej wyjść z zakresu.
Darmowa tablica sklepu
Tablicę można utworzyć dynamicznie, podczas wykonywania programu, w bezpłatnym sklepie. Taka tablica można utworzyć w następujący sposób:
char *ptr = nowy char [5] „p”, „q”, „r”, „s”, „t”;Ta sama tablica można utworzyć w głównej funkcji C ++ w następujący sposób:
char *ptr = nowy char [5];Uwaga dotycząca użycia operatora, nowego, tutaj. PTR jest wskaźnikiem. ARR powyżej jest również wskaźnikiem, ale podeszło do niego z innego punktu widzenia. Aby usunąć tę tablicę, użyj operatora, usuń [], jak pokazano poniżej. Tablicy w bezpłatnym sklepie nie można usunąć, pozwalając, aby wyjść z zakresu. Tak więc należy go usunąć z operatorem Delete [].
Ten artykuł ilustruje różne sposoby usunięcia tablicy utworzonej na dwa sposoby.
Treść artykułu
- Usuwanie zwykłej tablicy
- Usuwanie dynamicznie utworzonych tablicy wskaźników bezpłatnego sklepu
- Wniosek
Usuwanie zwykłej tablicy
Aby usunąć zwykłą tablicę, po prostu pozwól jej wyjść z zakresu. Chociaż funkcja main () jest funkcją kapitałową programu C ++, nadal jest funkcją. W poniższym programie tablica jest tworzona w zagnieżdżonym zakresie lokalnym (bloku) w głównej funkcji C ++:
#włączaćWyjście to q. Zakres zagnieżdżony jest blokiem konstruktu IF. Tablica została utworzona w tym bloku i używana w tym samym bloku poprzez drukowanie drugiej wartości tablicy. Na końcu bloku zmienna tablica umiera. Jeśli wskaźnik komentarza tuż pod blokiem zostanie usunięty, program nie zostanie skompilowany, zostanie wydany komunikat o błędzie. Będzie to dlatego, że tablica zmarła na końcu bloku.
Poniższy program ilustruje podobną rzecz, ale w funkcji, zwanej fn ().
#włączaćWyjście jest nadal, q. Jeśli wskaźnik komentarza tuż poniżej bloku funkcji zostanie usunięty, program nie zostanie skompilowany i zostanie wydany komunikat o błędzie. Będzie tak, ponieważ tablica zmarła na końcu bloku funkcji (zakres). Należy również zauważyć, że przypisanie po deklaracji nie jest dozwolone w globalnym zakresie.
Usuwanie dynamicznie utworzonych tablicy wskaźników bezpłatnego sklepu
Ponieważ przypisanie po deklaracji nie jest dozwolone w globalnym zakresie, tablica w bezpłatnym sklepie będzie wykonywana w zakazu zagnieżdżonego bloku funkcyjnego C ++, który jest zilustrowany poniżej. Operator Delete [] jest używany w zagnieżdżonym zakresie, aby usunąć tablicę, w następujący sposób:
#włączaćWyjście to jeden „Q”, z pierwszej instrukcji Cout. Zauważ, że nazwa tablicy, PTR, jako argument (parametr) operatora usuwania. Tablica, ptr dla bezpłatnego sklepu, jest zadeklarowana, używana i usuwana z operatorem „Usuń [] ()” w tym samym zagnieżdżonym zakresie. Jeśli nie pozwala się wyjść z zakresu, bez „usuwania [] ptr”, tak naprawdę nie zostanie usunięty, ponieważ jest w bezpłatnym sklepie. Taka tablica musi zostać usunięta w swoim zakresie, po użyciu z operatorem Delete []. Usuwanie za pomocą operatora Delete [] musi być wykonane dla tablicy dynamicznej, aby uwolnić pamięć (unikaj wycieku pamięci).
Poniższy program ilustruje podobną rzecz, ale w zakresie głównej funkcji C ++:
#włączaćWyjście jest nadal, q tak, jak powinno, z indeksem. Cały kod zainteresowania znajduje się bezpośrednio w głównej funkcji C ++. Chociaż funkcja main () jest funkcją kapitałową programu C ++, nadal jest funkcją zakresu funkcji lub bloku funkcji.
Włączenie nagłówka biblioteki
Jak wspomniano powyżej, nie uwzględniono biblioteki do korzystania z nowych lub usuwania operatorów. Jednak nowi i usuwani operatorzy są w nowej bibliotece, która jest domyślnie uwzględniona. Nowi i usuwani operatorzy mają globalny zakres. Biblioteka może być nadal uwzględniona, jak w poniższym programie dla zwykłej tablicy:
#włączaćProgram działa bez żadnego problemu. Biblioteka może być nadal uwzględniona, podobnie jak w poniższym programie, dla dynamicznej tablicy wskaźników w bezpłatnym sklepie:
#włączaćProgram działa bez żadnego problemu. Uwaga: Włączenie nowego nagłówka (biblioteka) nie jest obowiązkowe.
Wniosek
Aby usunąć zwykłą tablicę, po prostu pozwól jej wyjść z zakresu. Aby usunąć dynamiczną tablicę wskaźników bezpłatnego sklepu, użyj operatora, usuń [] ArrayName, w tym samym zakresie. Operator usuwania tablicy może mieć drugi i/lub trzeci argument. Jednak jest to dyskusja od jakiegoś czasu.