Как вставлять и затем печатать данные из массива в ящике в нижнем коде?Использование Jagged Array In c
int *jagged[5];
jagged[0] = malloc(sizeof(int) * 10);
Как вставлять и затем печатать данные из массива в ящике в нижнем коде?Использование Jagged Array In c
int *jagged[5];
jagged[0] = malloc(sizeof(int) * 10);
Вы можете вставить, добавив второй индекс для индекса вложенного массива.
int i;
for (i = 0; i < 10; ++i)
jagged[0][i] = some_value;
и печать как
int i;
for (i = 0; i < 10; ++i)
printf("%d\n", jagged[0][i]);
Имейте в виду, что вам нужно отслеживать длину каждого вложенного массива по своему усмотрению. В зависимости от ваших потребностей вы можете сделать что-то вроде
int jagged_lengths[] = {10, 5, 4, 0, 3};
int i, j;
// Write some data
for (i = 0; i < 5; ++i) {
jagged[i] = malloc(sizeof(int) * jagged_lengths[i]);
for (j = 0; j < jagged_lengths[i]; ++j)
jagged[i][j] = some_value;
}
// Read back the data
for (i = 0; i < 5; ++i)
for (j = 0; j < jagged_lengths[i]; ++j)
printf("%d\n", jagged[i][j]);
Прежде всего, почему бы не определить ваш массив как многомерный массив? если вы не хотите, чтобы размер каждого члена другой, вам не нужно использовать таНос для каждого члена, просто сделать:
int jagged[5][10];
, как для перебора, вы можете сделать что-то вроде:
int i,j;
for (i = 0; i < 5; i++)
for (j = 0; j < 10; j++)
jagged[i][j] = i*j; //or any value you want
for (i = 0; i < 5; i++)
for (j = 0; j < 10; j++)
printf ("%d,%d: %d\n", i, j, jagged[i][j]);
Спасибо @ Даниэль! Действительно очень полезно для меня, и, наконец, я выполнил свои задания! –