有没有办法在c中动态分配字符串数组而不知道其大小?

时间:2019-05-14 12:12:37

标签: arrays string dynamic-memory-allocation

我正在尝试分配一个字符串数组,但是我不确定在不知道其大小的情况下如何做。

假设一旦输入“ \ 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);

这种方式的输出很好,但这不是我当前的问题。

0 个答案:

没有答案