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();
}
Đỗ Trung Quân viết 18:17 ngày 30/09/2018

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

Hà Thành viết 18:16 ngày 30/09/2018

tk, đã sửa xong

Đỗ Trung Quân viết 18:28 ngày 30/09/2018

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 ^^

Nguyễn Minh Dũng viết 18:31 ngày 30/09/2018

Chương trình này build đâu có lỗi đâu?

Gió viết 18:22 ngày 30/09/2018

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ó

Thực tế khắc nghiệt viết 18:16 ngày 30/09/2018

quảng cáo : đừng ném đá em

Cấp phát vùng nhớ cho một nút : (Nút ở đây như 1 điểm để nhấn vào) Nut *p = (Nut *)malloc(sizeof(Nut)); Thêm một nút vào đầu danh sách: Đầu tiên ta phải cấp phát vùng nhớ cho nút mới này và cho con trỏ p trỏ đến (quản lý), sau đó sẽ đưa giá trị vào nút. Thao tác cuối cùng là gắn nút mới này vào đầu danh sách bằng cách cho nút này quản lý nút đầu tiên của danh sách (p->Tiep=dau), tiếp đến cho con trỏ dau trỏ đến nút mới (nút mà p cũng đang trỏ). Chú ý là phải thực hiện trước bước (con trỏ d…

Hà Thành viết 18:29 ngày 30/09/2018

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

Thực tế khắc nghiệt viết 18:24 ngày 30/09/2018

new đến từng phần tử (cấp phát bộ nhớ theo số lượng) ví dụ =new mang[x.soluong]

Bài liên quan
0