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]”实际上是一个字符指针数组。它存储字符地址。 –