30/09/2018, 16:16
Lỗi NullPointerException khi sử dụng con trỏ?
mình không dùng con trỏ thì nó không có lỗi nhưng có con trỏ thì lại gặp lỗi, mong m.n gỡ rối dùm. tk!
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
template<class t> class mang
{
int n;
t *pt;
public:
void nhap()
{
int i=0;
cout<<"so phan tu cua mang "; cin>>n;
pt=new t[n];
for(;i<n;i++)
{
cout<<"gt phan tu thu "<<i+1<<" la "; cin>>pt[i];
}
}
void xuat()
{
int i=0;
for(;i<n;i++)
{
cout<<pt[i]<<" ";
}
cout<<endl;
}
int timkiem(t x);
};
template<class t>int mang<t>::timkiem(t x)
{
int i=0;
for(;i<n;i++)
{
if(pt[i]==x) return i;
}
return 0;
}
int main()
{
int a=8;
// cout<<"nhap gt can tim "; cin>>a;
mang<int> *p;
p->nhap();
p->xuat();
mang<float> x;
x.nhap();
x.xuat();
cout<<"x trong mang thuc: "<<x.timkiem(a)<<endl;
cout<<"x trong mang nguyen: "<<p->timkiem(a)<<endl;
getch();
}
Bài liên quan
Bạn có 1 giờ để sửa lại bài viết. Xem cách up code lên diễn đàn tại đây [Markdown][1]
p/s: Nếu không sửa mình sẽ sửa cho bạn T___T huhu.
[1]: Cách post Code dùng Markdown trong Category Programming
tk, đã sửa xong
Ok, hết nhiệm vụ. Chờ các bạn vào chỉ giúp nhé Chúc bạn ăn cơm ngon miêng ^^
Chương trình này build đâu có lỗi đâu?
Build không lỗi nhưng chạy bị lỗi NullPointerException =)))). Vi p là con trỏ nên cần phải cung cấp bộ nhớ cho nó
quảng cáo : đừng ném đá em
vậy p này phải new cái j đây, cái khuôn hình nó khác với lớp tường minh p=new mang k dc, p=new mang lại càng không, p=new int[mang] thì sai luôn, vậy new th p đó thế nào m.n
new đến từng phần tử (cấp phát bộ nhớ theo số lượng) ví dụ =new mang[x.soluong]