• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Alokowanie dynamicznej tablicy napisów

0 głosów
60 wizyt
pytanie zadane 13 lutego w C i C++ przez Dudekdude Początkujący (290 p.)
Pytanie bezpośrenio związane z tytułem, jak zaalokować dynamicznie coś takiego? char**

Pytanie z języka C

1 odpowiedź

0 głosów
odpowiedź 13 lutego przez Criss VIP (129,950 p.)
Zaalokować dynamicznie tablice wskaźników, a potem pod każdy indeks zaalokować tablice char-ów (przypisać adres zwrócony przez malloc).
komentarz 13 lutego przez Dudekdude Początkujący (290 p.)
komentarz 13 lutego przez Criss VIP (129,950 p.)

Raczej tak:

char **tab=malloc(x* sizeof(char*));
    for(int i=0;i<x;i++)
    {
        tab[i]=malloc(4* sizeof(char));
    }

Zmieniłem:

  • W pierwszej linii int* na char*. Wskaźnik to wskaźnik (zawsze ma taki sam rozmiar) więc i tak my działało tak samo, ale nie wiadomo skąd tam się wziął int.
  • W drugiej linii `(int)sizeof(nap1)-2` na `x` - alokujesz x wskaźników, więc również x powinno być wypełnionych. Nie wiem co to jest sizeof(nap1).
  • W 4. linii `char*` na `char` - alokujemy pamięć wystarczającą na 4 char-y. char* to zupełnie inny typ, z pewnością o innym rozmiarze, i to już jest poważny błąd.

Podobne pytania

0 głosów
0 odpowiedzi 105 wizyt
0 głosów
1 odpowiedź 152 wizyt
+1 głos
1 odpowiedź 45 wizyt
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.
Ciekawy innych porad? Odwiedź tę stronę!

45,730 zapytań

86,123 odpowiedzi

171,994 komentarzy

22,186 pasjonatów

Przeglądających: 306
Pasjonatów: 24 Gości: 282

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...