아래 코드에서 지그재그 배열의 데이터를 삽입 한 다음 인쇄하는 방법은 무엇입니까?지그재그 형 배열 사용 c
int *jagged[5];
jagged[0] = malloc(sizeof(int) * 10);
아래 코드에서 지그재그 배열의 데이터를 삽입 한 다음 인쇄하는 방법은 무엇입니까?지그재그 형 배열 사용 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]);
등의 작업을 수행 할 수 있습니다. 배열을 다중 차원 배열로 정의하지 않는 이유는 무엇입니까? 각 멤버 서로 다른 크기를 원하지 않는다면, 각 구성원의 malloc을 사용하지 않아도 간단하게 수행
이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]);
감사합니다 @ 대니얼! 정말 대단히 도움이되었고 마침내 과제를 완료했습니다! –