나는 C에서 이중 연결 목록으로 작업하고 있는데, 나는 항상 사실로 받아 들여지거나 한 번 해답을 알고 잊어 버렸다고 깨달은 무언가를 발견했다. 포인터를 다시 사용하기 시작하면 매번 다시 학습해야합니다.구조체에서 전달 포인터에 추가 참조가 필요하지 않은 이유는 무엇입니까?
int insert (char *title, video **head, video **tail);
와 I가 왜 궁금 오전 : 삽입에 대한
typedef struct video
{
char title[MAX_TITLE_LENGTH];
struct video *prev;
struct video *next;
}video;
프로토 타입 :
int main(void)
{
video *head = NULL;
video *tail = NULL;
char *buffer = NULL;
buffer = (char*)malloc(sizeof(MAX_TITLE_LENGTH));
printf("Enter a title: ");
fgets(buffer, MAX_TITLE_LENGTH, stdin);
insert(buffer, &head, &tail);
}
나는 구조를 가지고 : 여기
내 설치의 기본이다 비디오 *의 주소를 구체적으로 전달하십시오.나는 char를 전달하는 방법을 알고, 문자열의 시작 부분의 메모리에 주소를 전달합니다. 값에 액세스하기 위해 머리와 꼬리를 다시 참조 해제해야하는 이유는 무엇입니까?
이것은 솔직히 내가 생각하는 것보다 더 간단합니다. 확신 할 수 있습니다. 나는 포인터에 대해 생각하는 나쁜 지점에 두뇌를 가지고 있습니다.
누구나 쉽게 풀 수 있습니까?
감사합니다. 기능 insert
이 무슨 head
및 tail
점을 을 변경해야 할 수도 있기 때문에
나는 그것을 실제로 얻는다. 좋은 답변으로 시간을내어 주셔서 감사합니다. 나는 이전의 이중 링크 된 목록 코드를 수정하여 뭔가 다른 것을 저장하려고하고 어떻게 작동했는지 잊어 버렸기 때문에 여러분은 그것이 정확히 무엇인지 알아 냈습니다! – Steve