Announcement

Collapse
No announcement yet.

cần sự giúp đở về pointer...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 13520692
    replied
    tks.. cac a em lm dc roi`

    Leave a comment:


  • 12520609
    replied
    Originally posted by 13520692 View Post
    b.x=3// xin cap phat hang
    b.y=4 // xin cap phat cot..
    ch em hỏi còn cách nào để giải phóng nửa không... em làm ròi.. chương trình chỉ chạy được 2 lần tới lần thứ 3 là nó bị lỗi...
    Để dễ hiểu em có thể vẽ ra:
    - Lần 1: b.x =3 => cấp phát 3 ô nhớ: [0]
    [1]
    [2]
    - Lần 2: Nếu em dùng vòng lặp với đk: i < b.y = 4
    [0][][][]
    [1][][][]
    [2][][][]
    [3][][][]
    - Có nghĩa là em đã dư 1 lần cuối cùng => ĐK vòng lặp i < b.x = 3

    Leave a comment:


  • 10520100
    replied
    PHP Code:
    #include <stdio.h>
    #include <stdlib.h>


    // Dinh nghia kieu BANG
    typedef struct
    {
        
    int row;
        
    int column;
        
    int **arr;
    BANG;
    int main()
    {
        
    // Khoi tao cho bang
        // Row = 3
        // Column = 4
        
    BANG bang;
        
    bang.row 3;
        
    bang.column 4;

        
        
    // Xin cap phat bo nho
        
    bang.arr = (int **) malloc (bang.row sizeof(int *));
        for(
    int i bang.row ; ++ i)
            
    bang.arr[i] = (int *) malloc (bang.column sizeof(int));


        
    // Giai phong bo nho
        
    for(int i bang.row ; ++ i)
            
    free(bang.arr[i]);
        
    free(bang.arr);


        
    // Chuong trinh chay thanh cong
        
    return 0;

    Bạn thử code này thử xem.

    Leave a comment:


  • 13520692
    replied
    Originally posted by 12520609 View Post
    - Giải phóng bộ nhớ như anh [MENTION=7355]10520100[/MENTION] đúng rồi, nhưng bạn bị sai 1 lỗi :
    + Ban đầu bạn cấp phát: b.x = 3
    + Vòng lặp bạn cho: i < b.y = 4 => Bạn xin có 3 nhưng bạn đòi nó cấp phát 4 lần
    b.x=3// xin cap phat hang
    b.y=4 // xin cap phat cot..
    ch em hỏi còn cách nào để giải phóng nửa không... em làm ròi.. chương trình chỉ chạy được 2 lần tới lần thứ 3 là nó bị lỗi...

    Leave a comment:


  • 12520609
    replied
    Originally posted by 13520692 View Post
    Code:
    typedef struct
    {
    	int **arr,x,y;
    }bang;
    main()
    {
            int i;
            bang b;
            b.x=3; b.y=4;
            b.arr=(int**)malloc(b.x*sizeof(int *));
    	for(int i=0;i<b.y;i++) b.arr[i]=(int*)malloc(b.y*sizeof(int));
    }
    đấy là code cấp phát bộ nhớ cho con trỏ cấp 2... Anh chị ơi chỉ em cách giải phóng bộ nhớ của con trỏ cấp 2 với(viết tiếp đoạn code bên trên)...
    - Giải phóng bộ nhớ như anh [MENTION=7355]10520100[/MENTION] đúng rồi, nhưng bạn bị sai 1 lỗi :
    + Ban đầu bạn cấp phát: b.x = 3
    + Vòng lặp bạn cho: i < b.y = 4 => Bạn xin có 3 nhưng bạn đòi nó cấp phát 4 lần

    Leave a comment:


  • 10520100
    replied
    PHP Code:
        // Dau tien, ta xoa cac vung nho da cap phat cho con tro cap 1
        
    for (b.; ++i)
           
    freeb.arr[i] );
        
    b.0;    

        
    // Tiep theo, ta xoa vung nho da cap phat cho con tro cap 2
        
    freeb.arr );
        
    b.0
    Mong giúp được bạn.
    Last edited by 10520100; 02-03-2014, 20:26.

    Leave a comment:


  • 13520692
    started a topic cần sự giúp đở về pointer...

    cần sự giúp đở về pointer...

    Code:
    typedef struct
    {
    	int **arr,x,y;
    }bang;
    main()
    {
            int i;
            bang b;
            b.x=3; b.y=4;
            b.arr=(int**)malloc(b.x*sizeof(int *));
    	for(int i=0;i<b.y;i++) b.arr[i]=(int*)malloc(b.y*sizeof(int));
    }
    đấy là code cấp phát bộ nhớ cho con trỏ cấp 2... Anh chị ơi chỉ em cách giải phóng bộ nhớ của con trỏ cấp 2 với(viết tiếp đoạn code bên trên)...

LHQC

Collapse
Working...
X