Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 8 của 8
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    ai chỉ rõ mình cách đưa giá trị ra khỏi hàm mà ko bị giải phóng bộ nhớ với

    Cái này. mình đang làm tránh giá trị f ko bị mất khi ra khỏi hàm. mình xử dụng hàm con trỏ mà bị lỗi quá, nên liều thử coi ko sử dụng con trỏ, nó bị lỗi f ngay hàm tính toán
    thực ra bài ni ông Thầy HĐH bắt về làm thuật toán Fifo trong HĐH bắt viết chương trình tính toán hiển thị thuật toán đó ra. mà mình mới làm kiểm tra 1 số lỗi ở cách đưa giá trị vào và ra khỏi hàm.
    nếu bác nào biết giúp em bài đó với. được thì chú thích theo đoạn để em nghiên cứu với nha các bác.[IMG]images/smilies/1.gif[/IMG][IMG]images/smilies/1.gif[/IMG]


    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    int n,k;
    int a[70],b[70][5];
    void tinhtoan(i,f,l)
    { printf("%d ",a[i]);
    f=f+1;
    }

    void main()
    { clrscr();
    randomize();
    n=random(70);
    k=random(5);
    // printf("%d %d",n,k);
    int f=0,l=0;
    for (int i=0;i<n;i++)
    {a[i]=random(9);
    tinhtoan(i,f,l);
    print("%d",f);}

    getch();
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Chỉ có cách dùng con trỏ hoặc tham chiếu mà thôi. Bạn ko muốn dùng con trỏ mà cũng ko muốn bị mất trị khi ra khỏi hàm -> cái này thì bó tay.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi meoconlongvang
    Chỉ có cách dùng con trỏ hoặc tham chiếu mà thôi. Bạn ko muốn dùng con trỏ mà cũng ko muốn bị mất trị khi ra khỏi hàm -> cái này thì bó tay.
    thì giờ nếu bỏ con trỏ vào thì thêm dấu * ở f thế là bị lỗi ngay tại void(i,*f,l)
    bác nào chỉ giúp đc ko ạ[IMG]images/smilies/thinking.gif[/IMG]

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    #include<stdio.h>#include<conio.h>#include<stdlib.h> int n,k;int a[70],b[70][5]; void tinhtoan(int i, int *f, int l){     printf("%d ", a[i]);    (*f) = (*f) + 1;} void main(){     clrscr();    randomize();        n=random(70);    k=random(5);     int f=0,l=0;        for (int i=0;i<n;i++)    {        a[i]=random(9);        tinhtoan(i, &f, l);        printf("%d
    ",f);    }     getch();}

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi meoconlongvang
    Mã:
    #include<stdio.h>#include<conio.h>#include<stdlib.h> int n,k;int a[70],b[70][5]; void tinhtoan(int i, int *f, int l){     printf("%d ", a[i]);    (*f) = (*f) + 1;} void main(){     clrscr();    randomize();        n=random(70);    k=random(5);     int f=0,l=0;        for (int i=0;i<n;i++)    {        a[i]=random(9);        tinhtoan(i, &f, l);        printf("%d
    ",f);    }     getch();}
    Thì ra lúc goi hàm tính toán là tinhtoan(i, &f, l); thế mà tui lại ghi *f thay vì ghi &f. thanks bạn nhiều

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    giống ý chang bạn, bạn test chưa sao tui bi cái *f hoài vẫn vị trí đó

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    nó báo lỗi như thế nào? test trên visual thì nó ra kq như thế này, k có lỗi

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi meoconlongvang
    Chỉ có cách dùng con trỏ hoặc tham chiếu mà thôi. Bạn ko muốn dùng con trỏ mà cũng ko muốn bị mất trị khi ra khỏi hàm -> cái này thì bó tay.
    Vấn có thể [IMG]images/smilies/biggrin.png[/IMG] .
    Chúng ta dùng biến toàn cục

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •