lý do bạn gặp lỗi là bạn m ust chỉ định giới hạn cho ít nhất kích thước bên ngoài; tức là
int jagged[][3] = {{0,1},{1,2,3}};
Bạn không thể bị lởm chởm [0] là mảng 2 phần tử int và răng cưa [1] là một mảng gồm 3 phần tử int; một mảng phần tử N là một kiểu khác với mảng M-phần tử (trong đó N! = M), và tất cả các phần tử của một mảng phải cùng loại.
Điều bạn có thể làm là những gì người khác đã đề xuất ở trên và tạo lởm chởm như một mảng con trỏ tới int; cách mà mỗi phần tử có thể trỏ đến số nguyên mảng của các kích cỡ khác nhau:
int row0[] = {0,1};
int row1[] = {1,2,3};
int *jagged[] = {row0, row1};
Mặc dù row0 và ROW1 nhiều loại khác nhau (2 phần tử mảng vs 3 yếu tố int), trong bối cảnh initializer họ cả hai được chuyển đổi hoàn toàn sang cùng một loại (int *).
Nguồn
2009-07-17 15:28:40
Erm bạn đang đẩy con trỏ vào một vectơ không giữ con trỏ ... – Goz