Я пытаюсь выделить массив строк, но я не уверен, как это сделать, не зная его размера.
Предполагается прекратить выделять память, как только вы введете '\ 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);
Таким образом, с выводом все в порядке, но это не моя текущая проблема.