01/10/2018, 10:58

Con trỏ trong struct

chào mấy anh chị!
khi em khai báo là_ int ptr[max][max] _thì chương trình chạy được còn khi em khai báo là int** ptr thì chương trình lại bị đơ.
em mới học struct nên còn mơ hồ mong mấy a/c chỉ bảo


Trần Hoàn viết 13:13 ngày 01/10/2018

có lẽ là vì khi khai báo mảng tĩnh int ptr[n][n]; thì đồng thời, ptr được khởi tạo, do đó được cấp phát bộ nhớ
còn khi khai báo int **ptr; thì ptr chưa được khởi tạo, do đó chưa được cấp phát bộ nhớ. Trong hàm nhập, em phải khởi tạo cho nó đã:

a.ptr = new int*[a.dong];
for (int i = 0; i < a.dong; i += 1)
    a.ptr[i] = new int[a.cot];
Lộc Lê viết 13:01 ngày 01/10/2018

dạ em cx khai báo r mà nó cũng không chịu chạy a ơi


Lộc Lê viết 13:07 ngày 01/10/2018

dạ do em khai báo nhầm a.ptr[a.dong] = new int [a.cot] nên nó k chạy h nó chạy r cảm ơn anh nha

Bài liên quan
0