The powodem, dla którego masz błąd, jest to, że ty ustala granice co najmniej w wymiarze zewnętrznym; tj
int jagged[][3] = {{0,1},{1,2,3}};
nie może mieć postrzępione [0] będzie tablica 2 element int postrzępione [1] jest tablica 3 element Int; tablica N-element jest innym typem niż tablica M-element (gdzie N! = M), a wszystkie elementy tablicy muszą być tego samego typu.
Co można zrobić z można to, co inni zasugerowali powyżej i utworzyć poszarpane jako tablica wskaźników do int; W ten sposób każdy element może wskazywać liczbę całkowitą tablic o różnych rozmiarach:
int row0[] = {0,1};
int row1[] = {1,2,3};
int *jagged[] = {row0, row1};
Chociaż row0 i ROW1 różne typy (2-element tablice w porównaniu z 3-element int), w związku z tym są one inicjatora zarówno niejawnie konwertowane na ten sam typ (int *).
Erm przesuwasz wskaźnik do wektora, który nie zawiera wskaźników ... – Goz