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

Đề tài: Hỏi về cấp phát bộ nhớ

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    14

    Mặc định Hỏi về cấp phát bộ nhớ

    Mình có đoạn code này;

    C Code:
    1. #include"cstdio"
    2. #include"cstdlib"
    3. #include"windows.h"
    4. int main()
    5. {
    6.    
    7.     int n=6,m=6,i,j;
    8.     int **a=(int**)malloc(n*sizeof(int*));
    9.     for(i=0;i<n;i++)
    10.     {
    11.                     MessageBoxA(0,0,0,0);
    12.                     a[i]=(int*)malloc(m*sizeof(int));
    13.                     for(j=0;j<m;j++);
    14.                     a[i][j]=i+j;
    15.     }
    16. return 0;
    17. }
    OK, nó dịch và chạy tốt trên VC6. Tuy nhiên nêu sửa lại 1 tí:

    C Code:
    1. #include"cstdio"
    2. #include"cstdlib"
    3. #include"windows.h"
    4. int main()
    5. {
    6.    
    7.     int n=6,m=6,i,j;
    8.     int **a;
    9.     **a=(int**)malloc(n*sizeof(int*));
    10.     for(i=0;i<n;i++)
    11.     {
    12.                     MessageBoxA(0,0,0,0);
    13.                     a[i]=(int*)malloc(m*sizeof(int));
    14.                     for(j=0;j<m;j++);
    15.                     a[i][j]=i+j;
    16.     }
    17. return 0;
    18. }
    thì lại hổng chạy. Vì sao thế ?

    Còn cái đoạn 1 thì dịch dc, nhưng khi chạy lại bị lỗi trên Dev C++ (VC ko lỗi )
    Chỉ có thể biết nhiều hay ít, khó có thể biết cho đủ...

  2. #2
    Ngày gia nhập
    09 2008
    Bài viết
    3

    Có ai giải thích dùm tôi sau dòng for có dấu";" để làm gì ko nhỉ ?
    MessageBoxA(0,0,0,0); //Cái này trên trường ko dạy nên chưa hiêu ! Ai giải thích dùm
    Tôi phải học những gì tôi chưa biết
    Tôi phải biết những gì tôi đã học


    Hãy Yêu Virus vì Virus rất yêu bạn

  3. #3
    Ngày gia nhập
    04 2008
    Bài viết
    244

    DEV là IDE chuẩn hơn VC++6 còn MessageBox chỉ in ra được chuỗi thôi,chi tiết có thể đọc mở MSDN

  4. #4
    Ngày gia nhập
    09 2008
    Bài viết
    3

    Trích dẫn Nguyên bản được gửi bởi honey Xem bài viết
    DEV là IDE chuẩn hơn VC++6 còn MessageBox chỉ in ra được chuỗi thôi,chi tiết có thể đọc mở MSDN
    Cho mình hỏi 1 câu hơi nhu nữa , để xuất ra 1 chuổi có nhiều cách tại sao mình dùng cách trên , mà trong chương trình chạy mình có thấy khai báo chuổi đâu mà xuất
    Tôi phải học những gì tôi chưa biết
    Tôi phải biết những gì tôi đã học


    Hãy Yêu Virus vì Virus rất yêu bạn

  5. #5
    Ngày gia nhập
    04 2008
    Bài viết
    244

    Cho mình hỏi 1 câu hơi nhu nữa , để xuất ra 1 chuổi có nhiều cách tại sao mình dùng cách trên , mà trong chương trình chạy mình có thấy khai báo chuổi đâu mà xuất
    __________________
    không khai báo chuỗi mới là sai,xuất chuỗi kiểu messageBox là trong lập trình windows

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    14

    Mặc định Hỏi về cấp phát bộ nhớ

    Hic, mình xài cái đó để debug thôi. Muốn dừng ở đâu thì nhét 1 MsgBox vào đấy để kiểm tra. Tiện cho cả sau này ko còn code thì phân tích ra asm cũng dễ mò hơn. Mình còn dùng nó để giữ kết quả lại trước khi bị trôi tuột đi mất T_T
    Chỉ có thể biết nhiều hay ít, khó có thể biết cho đủ...

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    186

    sửa lại:
    Code:
    **a=(int**)malloc(n*sizeof(int*));
    thành
    Code:
    a=(int**)malloc(n*sizeof(int*));

  8. #8
    Ngày gia nhập
    04 2008
    Bài viết
    336

    yeah, **a là địa chỉ ,còn a là con trỏ chứa địa chỉ, mà cấp phát thì cần cấp phát cho con trỏ
    cách đầu mà bạn dùng là cách viết tắt
    code ra gió bão

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