fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct linkedlist{
  5. struct linkedlist *NEXT_ptr;
  6. struct linkedlist *PREVIEW_ptr;
  7. struct linkedlist *STATUS;
  8. }list_t;
  9.  
  10. int main(void){
  11.  
  12. list_t DUMMY;
  13. list_t *HEAD=malloc(sizeof(list_t));
  14. list_t *END=malloc(sizeof(list_t)); ///mallocによる動的確保のコードは省略しました。
  15.  
  16.  
  17. HEAD->NEXT_ptr = END;
  18. HEAD->PREVIEW_ptr = END;
  19. HEAD->STATUS = &DUMMY;
  20. ///リスト構造をHEADとENDでつくりました。
  21. END->NEXT_ptr = HEAD;
  22. END->PREVIEW_ptr = HEAD;
  23. END->STATUS = NULL; ///ループの終了条件につかいます。
  24.  
  25. while(HEAD->STATUS != NULL)
  26. {
  27. int COUNT = 0;
  28. printf("%d\n",COUNT++); ///ここまでは実行されます。
  29.  
  30. if(HEAD->STATUS == &DUMMY)
  31. {
  32. printf("SUCCESS-DUMMY\n"); ///実行されない
  33. break; ///実行されない
  34. }
  35.  
  36. else if(HEAD->STATUS == NULL)
  37. {
  38. puts("SUCCESS-NULL"); ///実行されない
  39. printf("%d\n",COUNT); ///実行されない
  40. }
  41.  
  42. HEAD = HEAD->NEXT_ptr;
  43. }
  44.  
  45. free(HEAD);
  46. free(END);
  47. return 0;
  48. }
Success #stdin #stdout 0s 2424KB
stdin
Standard input is empty
stdout
0
SUCCESS-DUMMY