Jak dynamicznie przydzielić tablicę ciągów w C?
Jestem noobem, więc nie bądź dla niego surowa.
Zamiast czegoś takiego;
char string[NUM OF STRINGS][NUM OF LETTERS];
Czy jest możliwe dynamiczne przydzielanie liczby ciągów znaków w tablicy z malloc, tak jak dynamiczne przydzielanie pamięci dla wskaźnika char? Coś w tym stylu:
int lines;
scanf("%d", &lines);
char *string[NUM OF LETTERS]
string = malloc(sizeof(char) * lines);
Próbowałem, ale to nie zadziałało; Muszę robić coś złego.
Inne rozwiązanie, o którym pomyślałem, to:
int lines;
scanf("%d", &lines);
char string[lines][NUM OF LETTERS];
ale chcę wiedzieć, czy jest to możliwe w przypadku malloc.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
gdzie i
lengthOfStrings [i]
to liczby całkowite reprezentujące liczbę ciągów, które chcesz zawrzeć w tablicy, oraz długość łańcucha th odpowiednio w tablicy.Anonimowy użytkownik
Potwierdzenie od:
Pierwsza jest bardziej złożona, ponieważ wymaga alokacji pamięci dla tablicy wskaźników do ciągów, a także alokacji pamięci dla każdego ciągu.
Możesz przydzielić pamięć dla całej tablicy:
Wadą drugiej metody jest to, że bajtów jest przydzielanych dla każdego wiersza. Dlatego jeśli masz dużo krótkich stringów, pierwsza metoda będzie dla Ciebie lepsza.
Anonimowy użytkownik
Potwierdzenie od:
Bardziej szczegółowe wyjaśnienie: przeczytaj
Lista często zadawanych pytań Pytanie 6.16
http://www.c-faq.com/aryptr/dynmuldimary.html
.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od: