#include <stdio.h>
typedef struct linkedlist{
struct linkedlist *NEXT_ptr;
struct linkedlist *PREVIEW_ptr;
struct linkedlist *STATUS;
}list_t;
int main(void){
list_t DUMMY;
list_t *HEAD;
list_t *END; ///mallocによる動的確保のコードは省略しました。
HEAD->NEXT_ptr = END;
HEAD->PREVIEW_ptr = END;
HEAD->STATUS = &DUMMY;
///リスト構造をHEADとENDでつくりました。
END->NEXT_ptr = HEAD;
END->PREVIEW_ptr = HEAD;
END->STATUS = NULL; ///ループの終了条件につかいます。
while(HEAD->STATUS != NULL)
{
int COUNT = 0;
printf("%d\n",COUNT
++); ///ここまでは実行されます。
if(HEAD->STATUS == &DUMMY)
{
printf("SUCCESS-DUMMY\n"); ///実行されない break; ///実行されない
}
else if(HEAD->STATUS == NULL)
{
puts("SUCCESS-NULL"); ///実行されない printf("%d\n",COUNT
); ///実行されない }
HEAD = HEAD->NEXT_ptr;
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCBsaW5rZWRsaXN0ewogICAgICAgIHN0cnVjdCBsaW5rZWRsaXN0ICpORVhUX3B0cjsKICAgICAgICBzdHJ1Y3QgbGlua2VkbGlzdCAqUFJFVklFV19wdHI7CiAgICAgICAgc3RydWN0IGxpbmtlZGxpc3QgKlNUQVRVUzsKfWxpc3RfdDsKIAppbnQgbWFpbih2b2lkKXsKIAogICAgICAgIGxpc3RfdCAgRFVNTVk7CiAgICAgICAgbGlzdF90ICpIRUFEOwogICAgICAgIGxpc3RfdCAqRU5EOyAgICAgIC8vL21hbGxvY+OBq+OCiOOCi+WLleeahOeiuuS/neOBruOCs+ODvOODieOBr+ecgeeVpeOBl+OBvuOBl+OBn+OAggogCiAKICAgICAgICBIRUFELT5ORVhUX3B0ciA9IEVORDsKICAgICAgICBIRUFELT5QUkVWSUVXX3B0ciA9IEVORDsKICAgICAgICBIRUFELT5TVEFUVVMgPSAmRFVNTVk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vL+ODquOCueODiOani+mAoOOCkkhFQUTjgahFTkTjgafjgaTjgY/jgorjgb7jgZfjgZ/jgIIKICAgICAgICBFTkQtPk5FWFRfcHRyID0gSEVBRDsKICAgICAgICBFTkQtPlBSRVZJRVdfcHRyID0gSEVBRDsKICAgICAgICBFTkQtPlNUQVRVUyA9IE5VTEw7ICAgLy8v44Or44O844OX44Gu57WC5LqG5p2h5Lu244Gr44Gk44GL44GE44G+44GZ44CCCiAKICAgICAgICB3aGlsZShIRUFELT5TVEFUVVMgIT0gTlVMTCkKICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgQ09VTlQgPSAwOwogICAgICAgICAgICAgICAgcHJpbnRmKCIlZFxuIixDT1VOVCsrKTsgICAvLy/jgZPjgZPjgb7jgafjga/lrp/ooYzjgZXjgozjgb7jgZnjgIIKIAogICAgICAgICAgICAgICAgaWYoSEVBRC0+U1RBVFVTID09ICZEVU1NWSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJTVUNDRVNTLURVTU1ZXG4iKTsgIC8vL+Wun+ihjOOBleOCjOOBquOBhAogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAvLy/lrp/ooYzjgZXjgozjgarjgYQKICAgICAgICAgICAgICAgICB9CiAgICAgICAgCiAgICAgICAgICAgICAgICBlbHNlIGlmKEhFQUQtPlNUQVRVUyA9PSBOVUxMKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBwdXRzKCJTVUNDRVNTLU5VTEwiKTsgICAvLy/lrp/ooYzjgZXjgozjgarjgYQKICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlZFxuIixDT1VOVCk7ICAgLy8v5a6f6KGM44GV44KM44Gq44GECiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIEhFQUQgPSBIRUFELT5ORVhUX3B0cjsgICAgCiAgICAgICAgIH0KIAogICAgICAgIGZyZWUoSEVBRCk7CiAgICAgICAgZnJlZShFTkQpOwogICAgICAgIHJldHVybiAwOwogfQ==