tôi nhận được lỗi "intitializer fails to determine size of 'K'
" tại dònglỗi: initializer thất bại trong việc xác định kích thước của ‘K’
int K[]= new int[Vertices->total];
Làm thế nào để giải quyết nó?
tôi nhận được lỗi "intitializer fails to determine size of 'K'
" tại dònglỗi: initializer thất bại trong việc xác định kích thước của ‘K’
int K[]= new int[Vertices->total];
Làm thế nào để giải quyết nó?
Thay đổi
int K[]= new int[Vertices->total];
để
int *K = new int[Vertices->total];
Một 1st là cách Java
của việc tạo ra một mảng, nơi bạn K
là một tham chiếu đến một mảng số nguyên. Nhưng trong C++
, chúng ta cần phải đặt K
con trỏ thành loại số nguyên.
Thankx làm việc của nó, Nhưng tôi có thể sử dụng cùng một K để lưu trữ mảng – smile
@shiva Hầu như. Mảng trong c thực sự chỉ là con trỏ tới các khối bộ nhớ. vì vậy, nếu bạn muốn sử dụng K để thao tác một mảng của mảng số nguyên, khai báo sẽ là 'int K ** = new int * [
new int[Vertices->total]
trả về một con trỏ và do đó, int *K = new int[Vertices->total];
sẽ hoạt động tốt.
Nếu bạn biết kích thước của Vertices->total
tại thời gian biên dịch (tức là không đổi) thì bạn có thể đã sử dụng int K[Vertices->total];
// Cấp phát bộ nhớ trên stack
Bạn cần phải quyết định xem bạn đang lập trình trong 'C++' hoặc ' C', và, nếu nó là thứ hai, cho dù bạn đang sử dụng 'C99' hay không. –
Thông báo lỗi tệ hại. Bạn đang sử dụng trình biên dịch nào? –
@nobugz Thực ra, tôi nghĩ đó là một thông báo lỗi hợp lý. –