我正在尝试分配一个字符串数组,但是我不确定在不知道其大小的情况下如何做。
假设一旦输入“ \ 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);
这种方式的输出很好,但这不是我当前的问题。