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;
}
Bài liên quan
Tham biến và tham trị
em vẫn chưa hiểu rõ lắm , bác giải thích kỹ hơn được không ạ ?
Code này có đến hai lỗi:
1.
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.em hiểu rồi , cảm ơn bác nhiều