Jak użyć operatora new dla czegoś takiego

0

Próbowałem różnych kombinacji ale nie wiem. Wiem, że nikt tego w dzisiejszych czasach nie używa ale tak z ciekawości chciałbym wiedzieć.

#include <stdio.h>

int main()
{
    char *tokens[20];
     //zadanie to stwórz np. 5 takich tablic 20 elementowych, z tym, że te 20 elementów już masz w typie wyżej podane, więc coś takiego jak niżej odpada
   /*
    char **tokens;
    tokens = new char*[5];
    for(int i=0;i<5;++i)
        tokens[i] = new char[20];
    
    for(int i=0; i<5; ++i)
        delete tokens[i];
    delete [] tokens;

*/
    delete [] tokens;
    return 0;
}
0

Czego nikt nie używa?

1

Poniższy kod tworzy 20-elementową tablicę stringów o długości 1000 znaków:

char** numStrs = new char*[20];
for(int i=0; i < n; i++)
 numStrs[i] = new char[1000];

Zwalnianie pamięci (aby nie było wycieku):

for(int i=0; i < n; i++)
  delete [] numStrs[i];
delete [] numStrs;

Wyciek pamięci może mieć miejsce tylko wtedy gdy aplikacja jest uruchomiona – po zamknięciu aplikacji wszystko jest czyszczone samoczynnie.
Jeżeli ktoś korzysta z biblioteki STL to nie musi używać takich konstrukcji ale warto to znać - np. gdy będziesz chciał samemu zaimplementować jakąś dziwną strukturę danych... No i wiedzieć jak to wszystko działa od podszewki.

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