struct node
{
char *IPArray[100];
struct node *ptr;
};
typedef struct node NODE;
NODE *head, *first, *temp = 0;
first = 0;
int numofIP;
這是我的結構,用於在鏈接列表中的每個節點上包含字符串。 numofIP是我的鏈接列表中的最大數量的字符串或節點。在c中包含字符串的鏈接列表
for(int i=0; i<numofIP; i++)
{
head = (NODE *)malloc(sizeof(NODE));
printf("enter the IP addresses:\n");
scanf("%s",&head->IPArray[i]);
if(first != 0)
{
temp->ptr = head;
temp = head;
}
else
{
first = temp = head;
}
}
temp->ptr = 0;
temp = first;
這是我如何接受輸入並將其存儲在每個節點中。
while(temp != NULL)
{
printf("%d=> ",temp->IPArray);
temp = temp->ptr;
}
這就是我如何打印鏈表。
但問題是我得到輸出地址。我無法弄清楚。如何在鏈接列表中的每個節點中存儲字符串?
'字符* IPArray [100];'→'炭IPArray [100];','的scanf( 「%S」,&頭戴式> IPArray [I]);'→'的scanf(」 %s「,head-> IPArray [i]);'''printf(」%d =>「,temp-> IPArray);'→'printf(」%s =>「,temp-> IPArray);' –
[不要在C中拋出malloc的結果](http://stackoverflow.com/q/605845/995714) –
你的字符數組「char * IPArray [100]」實際上是一個字符指針數組。它存儲字符地址。 –