Выделение массива строк в C

Чтобы выделить массив строк в C, у вас есть несколько вариантов. Вот несколько методов, которые вы можете использовать:

Метод 1: статический массив

char strings[5][100]; // Allocates a static array of 5 strings, each with a maximum length of 100 characters

Метод 2: динамический массив

int numStrings = 5;
int maxLength = 100;
char strings = malloc(numStrings * sizeof(char*)); // Allocates an array of string pointers
for (int i = 0; i < numStrings; i++) {
    strings[i] = malloc(maxLength * sizeof(char)); // Allocates memory for each string
}

Метод 3. Массив указателей

int numStrings = 5;
char* strings[numStrings]; // Allocates an array of string pointers
for (int i = 0; i < numStrings; i++) {
    strings[i] = malloc(maxLength * sizeof(char)); // Allocates memory for each string
}

Метод 4. Массив символов

int numStrings = 5;
char* strings[numStrings]; // Allocates an array of character arrays
for (int i = 0; i < numStrings; i++) {
    strings[i] = calloc(maxLength, sizeof(char)); // Allocates and initializes memory for each character array
}

Не забудьте освободить память, как только вы закончите ее использовать, используя free. Для динамических массивов вам необходимо освободить каждую строку отдельно, прежде чем освобождать сам массив.