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

Đề tài: Gặp lỗi khi sử dụng hàm malloc

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    13

    Mặc định Gặp lỗi khi sử dụng hàm malloc

    Mọi người vui lòng chỉ ra lỗi sai của mình khi sử dụng hàm malloc() để cấp phát bộ nhớ động cho mảng ký tự 2 chiều với
    C Code:
    1. #include<stdio.h>
    2. #include<malloc.h>
    3. void main()
    4. {char (*ch_arry)[20];
    5.  ch_arry=(char*)malloc(10*20*sizeof(char));
    6. }
    Nó báo lỗi: " Can not convert 'char*' to 'char(*)[20]'
    Mong mọi người chỉ giùm. Thanks !
    Đã được chỉnh sửa lần cuối bởi peterdrew : 19-04-2010 lúc 11:40 AM.

  2. #2
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    char (*ch_arry)[20];
    ch_arry=(char*)malloc(10*20*sizeof(char));

    -->Lỗi do không hiểu rõ cấp phat động đây mà:
    Bạn tham khảo ví dụ sau

    for(int i=0;i<n;i++) ch_arry[i]=(char*)malloc(10*sizeof(char));
    Đã được chỉnh sửa lần cuối bởi tauit_dnmd : 19-04-2010 lúc 10:36 AM.

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    13

    Trích dẫn Nguyên bản được gửi bởi tauit_dnmd Xem bài viết
    char (*ch_arry)[20];
    ch_arry=(char*)malloc(10*20*sizeof(char));

    -->Lỗi do không hiểu rõ cấp phat động đây mà:
    Bạn tham khảo ví dụ sau

    for(int i=0;i<n;i++) ch_arry=(char*)malloc(10*sizeof(char));
    Chưa hiểu rõ lắm ý của bạn, tuy nhiên ví dụ của bạn sai và cũng báo lỗi như của tớ. Thân !

  4. #4
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Trích dẫn Nguyên bản được gửi bởi Buomvang Xem bài viết
    Chưa hiểu rõ lắm ý của bạn, tuy nhiên ví dụ của bạn sai và cũng báo lỗi như của tớ. Thân !
    -->Sory !
    Wen 1 chỗ quan trong.Mình đã sửa lại rồi

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    -Đây là ví dụ hoàn chỉnh,đã đc test thử trên Cfree.
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    void main()
    {
        
    char *arr[20];
        for(
    int i=0;i<20;i++)
        {
            
    arr[i]=(char*)malloc(10*sizeof(char));
            
    arr[i]=(char*)(65+i);
            
    printf("%c ",arr[i]);
        }


  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    Mặc định Gặp lỗi khi sử dụng hàm malloc

    Trích dẫn Nguyên bản được gửi bởi Buomvang Xem bài viết
    Mọi người vui lòng chỉ ra lỗi sai của mình khi sử dụng hàm malloc() để cấp phát bộ nhớ động cho mảng ký tự 2 chiều với
    C Code:
    1. #include<stdio.h>
    2. #include<malloc.h>
    3. void main()
    4. {char (*ch_arry)[20];
    5.  ch_arry=(char*)malloc(10*20*sizeof(char));
    6. }
    Nó báo lỗi: " Can not convert 'char*' to 'char(*)[20]'
    Mong mọi người chỉ giùm. Thanks !
    là do như này nè
    char (*ch_arry)[20];
    tương đương với
    char *ch_arry[20];
    ide sẽ hiểu đây là 1 mảng con trỏ có các phần từ là
    ch_arry[0]
    ch_arry[1]
    ch_arry[2]
    ..........
    trong đó mỗi phần từ này lại là 1 con trỏ kiểu char

    trong câu lệnh cấp phát của bạn bạn lại ép kiểu là char* thì làm sao mà được

    vì thế bạn hãy cấp phát lần lượt cho từng phần tử (con trỏ) một
    như ví dụ của tauit_dnmd
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  7. #7
    Ngày gia nhập
    12 2007
    Bài viết
    13

    Đã fix thành công, xin cảm ơn tất cả mọi người

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

  1. Lập trình C++ Con trỏ cấp 2 và hàm malloc
    Gửi bởi ruacon_chungtinh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 20-09-2013, 09:31 PM
  2. Hàm malloc trong C
    Gửi bởi thaohoangf trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 04-12-2012, 07:34 AM
  3. Lập trình C++ câu hỏi ngắn về Malloc
    Gửi bởi hostpro16 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 21-11-2012, 08:47 PM
  4. hàm malloc
    Gửi bởi edconan93 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 13-07-2012, 01:46 AM
  5. Phân biệt hàm malloc và thư viện malloc.h
    Gửi bởi nguyenthanhhai90vp trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 16-09-2010, 11:34 AM

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