Есть ли способ динамически выделить массив строк, не зная его размера, в с? - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь выделить массив строк, но я не уверен, как это сделать, не зная его размера.

Предполагается прекратить выделять память, как только вы введете '\ n'. Я попытался сделать это, задав случайный размер и затем перераспределив его.

#define MAX_CITY 100
#define MAX_LEN 30

do{
adressa = calloc(MAX_LEN, sizeof(char));
for (len = 0; len < MAX_LEN -1; len++)
    if ((sign = getchar()) != '\n')
        *(adressa + len) = sign;
    else break;
*(adressa + len) = '\0';
...
adressa = realloc(adressa, len + 1);
for (i = num_city-1; i >= 0; i--)
    if (strcmp(adressb[i], adressa) > 0)
         adressb [i+ 1] = adressb[i];
    else break;
adressb [i+1] = adressa;
} 
    while (++num_city< MAX_CITY);

Таким образом, с выводом все в порядке, но это не моя текущая проблема.

...