연결된 목록을 통해 고정 배열을 읽는 프로그램을 만들려고했습니다. 코드를 실행할 때마다이 프로그램은 분명히 부정확 한 번호를 제공하고 배열을 반복하지 않습니다. 내가 뭘 잘못하고있어?링크 된 목록을 통해 배열을 읽을 때 정수가 잘못되었습니다.
#include <stdio.h>
#include <stdlib.h>
struct number
{
int array[10];
struct number *next;
};
int main()
{
struct number array[10] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90};
struct number *head = 0;
struct number *tail = 90;
array[0].next = &array[1];
array[1].next = &array[2];
array[2].next = &array[3];
array[3].next = &array[4];
array[4].next = &array[5];
array[5].next = &array[6];
array[6].next = &array[7];
array[7].next = &array[8];
array[8].next = &array[9];
array[9].next = NULL;
printf("%i", array[10].array[2]);
struct number *current = head;
while(current != NULL)
{
printf("Node %i contains the element and is stored in address %p\n", current->array[0], current);
current = current->next;
}
}
'struct number array [10] = ...'-> 이것은'struct number '의'int array [10];'멤버를 초기화하는 대신'struct number' 타입의 10 개의 원소 배열을 생성합니다. '-Wall' 모든 경고를 켜고 프로그램을 컴파일 해보십시오. –
'struct number * tail = 90;'->'struct number *'포인터에'int' 값을 대입합니다. Isnt 컴파일러는 이것을 경고하고 있습니까? –