Bài tập con trỏ Pointer to Array. Hàm int* getPointerToArray(int n)

Đề bài: Viết hàm int* getPointerToArray(int n) . Hàm này khai báo một con trỏ kiểu nguyên, cấp phát bộ nhớ động cho con trỏ đó n phẩn tử kiểu nguyên và sau đó gán giá trị cho n phần tử đó các số được nhập từ bàn phím. Hàm trả về con trỏ được khai báo.
Em chưa hiểu cách làm bài này nên có mò 1 vài cách thì code này chạy được nhưng sai. Mn xem giúp em với ạ!!

#include <iostream>

using namespace std
int* getPointerToArray(int n) {
    int* a = new int[n];
    for (size_t i = 0; i < n; i++) {
        cin >> a[i];
    }
    n = *a;
    return &n;
}
int main()
{
    int n; cin >> n;
    cout << getPointerToArray(n);
}

Thấy sai sai gì rồi đấy. Thực ra là khó chịu thì đúng hơn.
Đã dùng cin rồi thì gọi hẳm 1 chỗ luôn đi việc phải nhập cin >> n ở main() rồi truyền vào getPointerToArray(); mà trong hàm này lại gọi đến cin.
Là đề bài bắt buộc hàm phải là int* getPointerToArray(int n) phải không bạn? Nếu vậy thì cái đề này gọi là “RẢNH QUÁ TRỜI”.

Đề có mẫu nhập/xuất gì không bạn? Chứ như cách xuất của bạn thì cũng chẳng thể giúp gì trong việc chấm điểm tự động cả. Trừ khi thầy/cô chấm bằng “mắt”.

2 Likes

A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3


Chỉ có như này thôi ạ.

Ờ kìa, phần OUT là mảng vừa nhập.

Mà đề chỉ yêu cầu bạn viết mỗi cái hàm thôi mà, thế thì viết mỗi cái hàm thôi, sao lại có cả main() và #include làm gì. Đề này yêu cầu giống cách làm bài của CodeLearn.

3 Likes

Mình viết cả main để chạy thử bên ngoài ý mà

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