30/09/2018, 19:28

lỗi in ra mảng động

em muốn in ra mảng ở hàm main nhưng nó không in ra được, mọi người giúp em với ạ

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int nhap(int *a,int n)
{
    printf("
 Nhap so phan tu cua mang : ");
    scanf("%d",&n);
    a= (int *) malloc (n * sizeof(int)) ;
    for(int i=0;i<n;i++){
        printf("
 Nhập phần tử thứ %d : ",i+1);
        scanf("%d",&a[i]);
    }
    
    return a;
}

int main(){
    int *b,n;
    nhap(b,n);// gán địa chỉ của con trỏ a bằng địa chỉ mà hàm nhập trả về
    printf("
 Mang vua nhap la : ");
    for(int i=0;i<n;i++){
        printf("
 %d",b[i]);
        
    }
}
bphvcg viết 21:42 ngày 30/09/2018

n bạn thay đổi nên bạn phải thêm &n ở phần khai báo hàm nhap

Xuân Hòa viết 21:40 ngày 30/09/2018

nếu bạn đã truyền vào hàm như vậy rồi thì coi như n đã có nha bạn, bạn nhập n ở hàm main nha rồi mới tuyền vào, nữa là trong hàm nhập bạn muốn return ra 1 cái mảng luôn thì phải trả về kiểu int* chứ.

Việt Dũng Lê viết 21:43 ngày 30/09/2018

cám ơn bác, em đã thử sửa lại như bác nói nhưng vẫn không in được mảng ra ạ
theo ý em hiểu là truyền tham số thực n từ hàm main vào hàm nhập thì em nghĩ để n chứ ạ
để &n em thấy hơi lạ

Việt Dũng Lê viết 21:39 ngày 30/09/2018

em đã sửa lại thành return *a;
nhưng vẫn khôgn in được ra mảng ạ , nếu bác rảnh có thể bỏ code vào ide sửa giúp em cám ơn ạ

Xuân Hòa viết 21:38 ngày 30/09/2018

chỗ main bạn khai báo cũng sai nha, n phải kiểu int chứ ai để int* bạn
http://codepad.org/mzewcXow

Bài liên quan
0