使用锯齿状数组c

Muh*_*sal 2 c jagged-arrays

如何在下面的代码中插入并打印锯齿状数组中的数据?

int *jagged[5];

jagged[0] = malloc(sizeof(int) * 10);
Run Code Online (Sandbox Code Playgroud)

Dan*_*rov 8

您可以通过为嵌套数组的索引添加第二个下标来插入.

int i;
for (i = 0; i < 10; ++i)
    jagged[0][i] = some_value;
Run Code Online (Sandbox Code Playgroud)

和打印一样

int i;
for (i = 0; i < 10; ++i)
    printf("%d\n", jagged[0][i]);
Run Code Online (Sandbox Code Playgroud)

请记住,您需要自己跟踪每个嵌套数组的长度.根据您的需要,您可能会做类似的事情

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]);
Run Code Online (Sandbox Code Playgroud)