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 >> nmain() 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()#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?