01/10/2018, 15:36

Lỗi không gọi được hàm trong C++

Chào mọi người ạ , em đang học c++ đến phần mảng 1 chiều .
Khi build trên code block thì trình biên dịch không chạy được , em lên trên web build online thì chương trình của em chỉ gọi được hàm nhập mảng , còn hàm in mảng thì bị bỏ qua .
Code của em như sau

#include <iostream>
using namespace std;
void nhapMang(int * Mang , int phanTu)
{
    cout << " Nhap so phan tu mang : ";
    cin >> phanTu;
    for (int vitri = 0; vitri < phanTu ; vitri++ )
    {
        cout << "Nhap phan tu so " << vitri << " : " ;
        cin >> Mang[vitri];
    }
}
void inMang(int * Mang , int phanTu) // or declare inMang(int..., int Mang[])
{
    for (int vitri = 0 ; vitri < phanTu ; vitri++)
    {
        cout << "Phan tu " << vitri << " : " << Mang[vitri] << endl;
    }
}
int main()
{
    int phanTu;
    int Mang[phanTu];
    nhapMang(Mang,phanTu);
    inMang(Mang,phanTu);
    return 0;
}
rogp10 viết 17:45 ngày 01/10/2018

Tham biến và tham trị

Lê Minh Đức viết 17:52 ngày 01/10/2018

em vẫn chưa hiểu rõ lắm , bác giải thích kỹ hơn được không ạ ?

rogp10 viết 17:42 ngày 01/10/2018

Code này có đến hai lỗi:
1.

int Mang[phanTu];

phanTu phải có giá trị từ trước mới đúng. Mà C++ chỉ cho optional thôi.
2. Hàm nhập không khởi tạo phanTu vì trong hàm đó nó chỉ là bản copy (tham trị). Gọi là tham trị vì ngay đó có thể truyền vào một hằng “số” (literal) để hàm có thể sử dụng.

Lê Minh Đức viết 17:46 ngày 01/10/2018

em hiểu rồi , cảm ơn bác nhiều

Bài liên quan
0