大きなプロジェクトの一部としてリンクリストを作成していて、問題が発生しました。このテストケースは、コンマで区切られた範囲の文字列(この場合、範囲は整数またはダッシュで区切られた2つの整数)を取り、それぞれの範囲を単独でリンクされたリストに追加します。現在のところ、最初の2つの範囲しか印刷されていません。理由はわかりません。ここでは、コードは次のとおりです。リンクリストにすべての値が表示されない
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char port_list[] = "22-25,80,443-445,4200-4205";
struct range_list {
struct range_list *next;
char *range;
};
struct range_list *head = (struct range_list*) malloc(sizeof(struct range_list));
head->next = 0;
head->range = strtok(port_list, ",");
struct range_list *iter = (struct range_list*) malloc(sizeof(struct range_list));
head->next = iter;
iter->next = 0;
while((iter->range = strtok(NULL, ",")) != NULL) {
iter = (struct range_list*) malloc(sizeof(struct range_list));
iter->next = iter;
iter->next = 0;
}
for(iter=head; iter != 0; iter=iter->next) {
printf("%s\n", iter->range);
}
}
現在、出力は次のようになります。
22-25
80
、理想的には私が希望:事前に任意の助け
22-25
80
443-445
4200-4205
感謝を!私はそれが簡単な問題だと確信しています。私はちょうどリンクされたリストを書いて怖がってしまいます。ここで
おっとああの#include '' –
EOF
がありません。理想は何らかの理由で不平を言っていませんでした。 – DTSCode
更新されました – DTSCode