Hàm Khai báo và Nhập Mảng động bằng con trỏ

Em chào mọi người…^^

em đang có vấn đề về hàm nhập mảng đnag rất cần sự giúp đỡ của mọi người.


chẳng là em dùng con trỏ truyền vào trong hàm input để cho gọn thông tin nhập xuất, nhưng đến đoạn khai báo cho con trỏ thì dường như có vấn đề nhưng lại không biết làm thế nào…
mong mọi người chỉ em với ạ… @@

đây là code mình sửa cho bạn, bạn xem có hiểu không?

#include <bits/stdc++.h>


using namespace std;

void input(int & _n, int ** _a) {
    scanf("%d",&_n);
    *_a = new int[_n];
    for(int i = 0 ; i < _n ; i++) {
        scanf("%d",(*_a+i));
    }
}

int main() {

    int *n = new int;
    int *a = new int;
    input(*n,&a);
    free(n);
    free(a);
    return 0;
}

2 Likes

Okie cám ơn bác^^
nhưng mà sao input(*n, &a) lại truyền vào khác nhau, *n và &a vậy ah…

với cả thư viện này có ý nghĩa gì vậy bác… thần kì vậy…

em không hiểu chỗ “scanf (”%d",*_a+i)" và “cin >>*a[i]” khác gì nhau luôn @@

với lại sao lại không dùng “cin>>” với “cout<<” vậy ah
em dùng “cin>>” với “cout<<” bị lỗi mà không hiểu tại sao

để hiểu được thì bạn cần làm rõ các khải niệm và phân biệt được: thế nào là con trỏ thế nào là biến thông thường, con trỏ cấp 1 cấp 2 và các cấp, khai báo và cách sử dụng thế nào, bạn phải tìm hiểu thêm về vấn đề này, giờ mình không biết nói thế nào để cho bạn dễ hiểu luôn ấy.

còn scanf , chuẩn nhập xuất C, khác với C++ là mình phải format dữ liệu.

1 Like

okie em sẽ search thêm…
cám ơn bác nhiều ^^
Chúc mừng năm mới… ^^

nếu đã giải quyết được, thì tích solution cho mình nhá :slight_smile:

2 Likes

okie… chắc chắn rồi ^^

OKie… sau khi tìm khá các tài liệu và viết và nghiền ngẫm bài mà bác nobita đã chưa, cuối cùng mình cũng biết cách sửa.

Kết luận: “Con trỏ đa cấp và con trỏ tham chiếu”, ae nào gặp lỗi tương tự có thể làm thế này để thuần C++ nhé: http://codepad.org/5p6oc6xn

chân thành cảm ơn sự giúp đỡ của ace bạn bè trong Group ạ^^

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?