回答編集履歴
2
コード修正
    
        answer	
    CHANGED
    
    | @@ -33,10 +33,10 @@ | |
| 33 33 | 
             
                STACK *p = realloc(s, sizeof(STACK) + sizeof(int) * (s->cap + 1));
         | 
| 34 34 | 
             
                if(p == NULL) {
         | 
| 35 35 | 
             
                  fprintf(stderr, "realloc error.");
         | 
| 36 | 
            +
                  free(s);
         | 
| 36 37 | 
             
                  return NULL;
         | 
| 37 38 | 
             
                }
         | 
| 38 39 | 
             
                if(p != s) {
         | 
| 39 | 
            -
                  free(s);
         | 
| 40 40 | 
             
                  s = p;
         | 
| 41 41 | 
             
                }
         | 
| 42 42 | 
             
                s->cap ++;
         | 
1
コード修正
    
        answer	
    CHANGED
    
    | @@ -36,7 +36,6 @@ | |
| 36 36 | 
             
                  return NULL;
         | 
| 37 37 | 
             
                }
         | 
| 38 38 | 
             
                if(p != s) {
         | 
| 39 | 
            -
                  memcpy(p, s, sizeof(STACK) + sizeof(int) * (s->cap));
         | 
| 40 39 | 
             
                  free(s);
         | 
| 41 40 | 
             
                  s = p;
         | 
| 42 41 | 
             
                }
         | 
