int main(void)
{
int howMany,i,j;
char* temp = NULL;
char** friends = NULL;
printf("Please enter the number of the friends you have\n");
scanf(" %d",&howMany);
howMany++;
friends = (char**) malloc(sizeof(char*)*howMany);
for (i = 0; i < howMany; i++)
{
temp = (char*) malloc(20*sizeof(char));
fgets(temp,20,stdin);
temp[strspn(temp, "\n")] = '\0';
*(friends + i) = (char*)realloc(temp,sizeof(char) * (strlen(temp)+1));
}
for (i = 0; i < howMany; i++)
{
for (j = 0; j < strlen(*(friends+i)); j++)
{
printf("%c",friends[i][j]);
}
printf("\n");
}
for (i = 0; i < howMany; i++)
{
free(*(friends + i));
}
free(friends);
getchar();
return 0;
}
benim kod amacım kod neden çalışmadığını herhangi bir fikir, ekrana yazdırmadan nihayet i var arkadaşlar, isimleri miktarını almak ve etmektir?fgets() realloc ile garip davranış()
Girdi: daniel david
Çıktı:
(\ n)
Beklenen çıkışı: daniel david
Nasıl çalışıyor * çalışmıyor *? –
Şaşırtıcıyım @YuHao – ilanDazanashvili
Hayır working nasıl çalıştığını, örneğin girişinizi, beklenen çıkışı, akım çıkışını vb. Açıklayın. –