-1
iは、構造体とポインタを使用して簡単なfriend-リストを作ったが、私はそのが正しいことを印刷しない「コードでいくつかの問題を抱えている構造体とアルゴリズムとポインタが
typedef struct friends {
int namesize;
char* myfriends;
}friends;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(void)
{
int numfriends = 0;
int*p_friends = &numfriends;
int i = 0, count = 0;
printf("Welcome , here is a list of your friends \n");
printf("plesase enter the number of your friends \n");
scanf("%d", &numfriends); //gets the number of the friends
printf("you have %d friends \n", numfriends);
friends *f= malloc(sizeof(friends) * numfriends); // malloc
printf("now please enter thier'S name \n");
for (i = 0; i < numfriends; i++)
{
count++; // for looking at the number of the friend
(f+i)->myfriends= (char*)malloc(sizeof(char) * numfriends); // malloc
printf("enter the name of friend NO.%d ", count);
fgets((f + i)->myfriends,20,stdin); // entering the names of the friends
(f +i)-> namesize = strlen((f + i)->myfriends) + 1;
((f + i)->myfriends) = (char*)realloc((f + i)->myfriends, sizeof(char) * numfriends * (f + i)->namesize); //realloc
}
for (int j = 0; j < numfriends; j++)
{
printf("The name of friend NO %d is: %s \n", j + 1, ((f + j)->myfriends)); //printing the names
free((f + j)->myfriends);
}
system("pause");
return 0;
}
とイムは、友達リストを印刷しようとしたとき:
どうすれば解決できますか? 、何が `(F + I)で開始する
- (numfriends *はsizeof(CHAR))>マイフレンド=(CHAR *)のmalloc;' '関数fgets((F + I)が続く - >マイフレンド、20、stdin); 'do?ヒント:どちらも、(f + i) - > myfriendsに別の情報を書き込むので、あなたが思うことはしません。 –
ちょうど親切なヒントですが、あなたはこのページを読むことができます:[How-To-Ask Guide](https://stackoverflow.com/help/how-to-ask)可能な限り簡単に答えることができます。あなたが抱えている問題を修正するためにあなたがした努力と、それらの修正を試みたときに何が起こったのかを必ず含めてください。ショーコードとエラーメッセージも忘れないでください! –