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 :smiley: :smiley:


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];

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


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 :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?