Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: lỗi khi dùng stack trong C - báo warning trong hàm main rồi ko chạy

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    3

    Mặc định lỗi khi dùng stack trong C - báo warning trong hàm main rồi ko chạy

    khi mình biên dịch đoạn code sau thì báo lỗi trong hàm main và ko chạy
    mình nghĩ là lúc đưa hàm "push" vào trong main bị sai pointer, nhưng sửa mãi ko đc
    Code:
    [Warning] passing arg 1 of `push' from incompatible pointer type 
    mọi người có thể sửa giùm mình được ko
    Code:
    #include <stdio.h> 
    #include <conio.h>
    #include <stdlib.h>
    
    typedef int BOOL; 
    #define TRUE 1 
    #define FALSE 0 
    #define MAXSTACKSIZE 100 
     
    struct stack 
    {  
       int top; 
       int items[MAXSTACKSIZE]; 
    };  
     
    void Initialize(struct stack *ps)  
         {
         ps->top = -1;
         } 
    
    BOOL IsEmpty(struct stack *ps)  
         {
         return (ps->top == -1);
         } 
         
    BOOL IsFull(struct stack *ps) 
         {
         return (ps->top == -1);
         } 
      
    void push(struct stack *ps, int x) 
         { 
      if (IsEmpty(ps)) 
      { 
        printf("overflow \n"); 
        exit(1); 
      } 
      else
      ps->top=ps->top+1; 
      ps->items[ps->top] = x; 
      } 
      
    int pop(struct stack *ps) {
        int rtn; 
      if (IsEmpty(ps)) 
      { 
        printf("underflow\n"); 
        exit(1); 
      } 
      rtn=ps->items[ps->top]; 
      ps->top=ps->top-1; 
      return rtn;
      } 
      
      int stacktop(struct stack *ps) 
        { 
        if (IsEmpty(ps)) 
         { 
           printf("underflow\n");
           exit(1); 
         } 
         return (ps->items[ps->top]);
     } 
     
    int main()   
    {  
      struct stack *s; 
      int Rtn; 
      Initialize(s); 
      
      push(&s,5); 
      push(&s,6); 
      
      Rtn = stacktop(s); 
      printf("Top value of stack: %d", Rtn); 
      Rtn = pop(s); 
      
      Rtn = stacktop(s); 
      printf("Top value of stack: %d", Rtn); 
      return 0;
      getch();
    }
    Đã được chỉnh sửa lần cuối bởi blackant : 20-03-2009 lúc 01:43 AM. Lý do: fix ảnh

  2. #2
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <stdlib.h>
    4.  
    5. typedef int BOOL;
    6. #define TRUE 1
    7. #define FALSE 0
    8. #define MAXSTACKSIZE 100
    9.  
    10. struct stack
    11. {
    12.    int top;
    13.    int items[MAXSTACKSIZE];
    14. };
    15.  
    16. void Initialize(struct stack *ps)
    17.      {
    18.      ps->top = -1;
    19.      }
    20.  
    21. BOOL IsEmpty(struct stack *ps)
    22.      {
    23.      return (ps->top == -1);
    24.      }
    25.  
    26. BOOL IsFull(struct stack *ps)
    27.      {
    28.      return (ps->top == 100);
    29.      }
    30.  
    31. void push(struct stack *ps, int x)
    32.      {
    33.   if (IsFull(ps))
    34.   {
    35.     printf("overflow \n");
    36.     return;
    37.   }
    38.   ps->top++;
    39.   ps->items[ps->top] = x;
    40.      }
    41.  
    42. int pop(struct stack *ps) {
    43.     int rtn;
    44.   if (IsEmpty(ps))
    45.   {
    46.     printf("underflow\n");
    47.   }
    48.   else
    49.   {
    50.   rtn=ps->items[ps->top];
    51.   ps->top--;
    52.   return rtn;
    53.   }
    54. }
    55.  
    56.   int stacktop(struct stack *ps)
    57.     {
    58.     if (IsEmpty(ps))
    59.        printf("underflow\n");
    60.      else return (ps->items[ps->top]);
    61.  }
    62.  
    63. int main()
    64. {
    65.   struct stack *s;
    66.   int Rtn;
    67.   Initialize(s);
    68.  
    69.   push(s,5);
    70.   push(s,6);
    71.  
    72.   Rtn = stacktop(s);
    73.   printf("Top value of stack: %d\n", Rtn);
    74.   Rtn = pop(s);
    75.  
    76.   Rtn = stacktop(s);
    77.   printf("Top value of stack: %d\n", Rtn);
    78.   return 0;
    79.   getch();
    80. }
    Trình bày quá chán.

Các đề tài tương tự

  1. Lập trình C++ Hàm kiểm tra lỗi nhập vào trong bài dùng stack tính biểu thức dạng trung tố
    Gửi bởi scopion93 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 20-09-2012, 11:59 AM
  2. compiler Warning: Unreachable code và chạy sai trong khi code đúng. Vì sao?
    Gửi bởi lovemoney trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 19
    Bài viết cuối: 19-01-2012, 10:02 PM
  3. Lỗi không pop được các giá trị trong 1 đoạn code cộng 2 số lớn dùng stack. Giúp mình sửa với?
    Gửi bởi QUOC HUNG trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 03-11-2011, 09:10 PM
  4. Hàm trong C++ không nằm trong main vẫn chạy đúng. Giải thích giúp?
    Gửi bởi tuvan1011 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 02-09-2009, 12:58 PM
  5. Cách dùng stack trong lập trình C# như thế nào?
    Gửi bởi minhdv85 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 23-03-2009, 10:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn