새 노드를 C의 연결된 목록에 연결하는 문제

Adlon

저는 C에 익숙하지 않고 프로그래밍에도 익숙하지 않으며 방금 연결 목록을보기 시작했습니다.

static struct post {
    char * str;
    struct post * next;
}
head = {0, NULL};


int stringdb_add(const char * str) {
    int pos = 0;
    struct post * new_input = (struct post * ) malloc(sizeof(struct post));
    new_input - > str = (char * ) malloc(strlen(str) + 1);

    if (head.next == NULL) {
        strcpy(new_input - > str, str);
        new_input - > next = NULL;
        head.next = new_input;
    } else {
        while (head.next - > next) {
            ++pos;
            head.next = head.next - > next;
        }
        strcpy(new_input - > str, str);
        new_input - > next = NULL;
        head.next - > next = new_input;
    }

    return pos;
}

"stringdb_add"함수는 새 노드가 배치 된 위치를 반환해야하지만 함수를 테스트 할 때 (00111111 ....) 만 얻습니다.

목록이 제대로 링크되지 않았기 때문일 수 있습니다.

냉소
while (head.next->next) {
   ++pos;
   head.next = head.next->next;        
}

당신 head.next은 확실히 당신이 원하는 것이 아닌 영구적으로 변화 하고 있습니다. 아마도 다음과 같은 것을 원할 것입니다.

struct post *p = &head;
while (p->next->next)
/* ... */

Nitpick는 : strcpy(new_input->str, str)전과, 한 장소에있을 수 있습니다 if.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C 연결 목록 추가 새 노드 문제

분류에서Dev

C ++의 연결 목록에 새 노드를 추가하는 동안 프로그램이 충돌합니다.

분류에서Dev

Java의 연결된 목록에서 유일한 노드를 제거하는 방법은 무엇입니까?

분류에서Dev

C에서 정렬 된 연결 목록에서 노드 삭제

분류에서Dev

C ++ 참조 매개 변수를 사용하여 연결된 목록에 새 노드 할당

분류에서Dev

C의 연결 목록 끝에 새 노드 추가

분류에서Dev

연결된 목록 제거 메서드가 제거 된 노드와 새 노드를 반환

분류에서Dev

연결된 목록에서 C # 삭제 노드

분류에서Dev

하나의 링크를 제거하면 연결된 목록에서 노드가 어떻게 삭제됩니까?

분류에서Dev

C ++에서 연결 목록의 노드를 올바르게 삭제하는 방법

분류에서Dev

연결된 목록의 지정된 위치에서 노드 삭제

분류에서Dev

C에서 재귀 적으로 연결된 목록에서 노드 삭제

분류에서Dev

새로운 단일 연결 목록에서 단일 연결 목록의 홀수 인덱싱 된 노드를 반환하려면 어떻게해야합니까? 첫 번째 노드의 인덱스를 1로 가정합니다.

분류에서Dev

Python의 연결 목록에서 노드를 쉽게 제거하는 방법은 무엇입니까?

분류에서Dev

연결된 목록 및 pthread의 문제

분류에서Dev

단일 연결 목록 C에서 루트 노드를 반환하는 연결 목록

분류에서Dev

연결된 목록에서 노드를 이동하여 버블 정렬 (C ++)

분류에서Dev

C ++에서 연결된 목록의 더미 노드

분류에서Dev

연결된 목록에서 개체를 삭제하는 방법

분류에서Dev

C에서 연결된 목록을 반전하는 함수 구현 문제

분류에서Dev

연결 목록에서 노드를 삭제하는 코드가 맞습니까?

분류에서Dev

연결 목록에서 노드를 삭제하는 코드가 맞습니까?

분류에서Dev

연결된 목록의 순서를 반대로하는 기능 ... 마지막 노드는 목록의 나머지 부분에 연결되지 않습니다.

분류에서Dev

마지막 노드를 삭제하는 단일 연결 목록

분류에서Dev

C에서 연결된 목록 삭제

분류에서Dev

cypher에서 연결된 노드 목록과 문자열의 위치를 어떻게 반환합니까?

분류에서Dev

정렬 된 연결 목록 C ++에 요소를 추가 할 때 문제

분류에서Dev

C에서 Bucket Sort를 사용하여 배열 정렬. 연결 목록에 새 요소를 삽입하는 코드 작동 방식에 대한 질문

분류에서Dev

c에서 연결된 목록 코드를 사용하는이 삽입 정렬의 문제점은 무엇입니까?

Related 관련 기사

  1. 1

    C 연결 목록 추가 새 노드 문제

  2. 2

    C ++의 연결 목록에 새 노드를 추가하는 동안 프로그램이 충돌합니다.

  3. 3

    Java의 연결된 목록에서 유일한 노드를 제거하는 방법은 무엇입니까?

  4. 4

    C에서 정렬 된 연결 목록에서 노드 삭제

  5. 5

    C ++ 참조 매개 변수를 사용하여 연결된 목록에 새 노드 할당

  6. 6

    C의 연결 목록 끝에 새 노드 추가

  7. 7

    연결된 목록 제거 메서드가 제거 된 노드와 새 노드를 반환

  8. 8

    연결된 목록에서 C # 삭제 노드

  9. 9

    하나의 링크를 제거하면 연결된 목록에서 노드가 어떻게 삭제됩니까?

  10. 10

    C ++에서 연결 목록의 노드를 올바르게 삭제하는 방법

  11. 11

    연결된 목록의 지정된 위치에서 노드 삭제

  12. 12

    C에서 재귀 적으로 연결된 목록에서 노드 삭제

  13. 13

    새로운 단일 연결 목록에서 단일 연결 목록의 홀수 인덱싱 된 노드를 반환하려면 어떻게해야합니까? 첫 번째 노드의 인덱스를 1로 가정합니다.

  14. 14

    Python의 연결 목록에서 노드를 쉽게 제거하는 방법은 무엇입니까?

  15. 15

    연결된 목록 및 pthread의 문제

  16. 16

    단일 연결 목록 C에서 루트 노드를 반환하는 연결 목록

  17. 17

    연결된 목록에서 노드를 이동하여 버블 정렬 (C ++)

  18. 18

    C ++에서 연결된 목록의 더미 노드

  19. 19

    연결된 목록에서 개체를 삭제하는 방법

  20. 20

    C에서 연결된 목록을 반전하는 함수 구현 문제

  21. 21

    연결 목록에서 노드를 삭제하는 코드가 맞습니까?

  22. 22

    연결 목록에서 노드를 삭제하는 코드가 맞습니까?

  23. 23

    연결된 목록의 순서를 반대로하는 기능 ... 마지막 노드는 목록의 나머지 부분에 연결되지 않습니다.

  24. 24

    마지막 노드를 삭제하는 단일 연결 목록

  25. 25

    C에서 연결된 목록 삭제

  26. 26

    cypher에서 연결된 노드 목록과 문자열의 위치를 어떻게 반환합니까?

  27. 27

    정렬 된 연결 목록 C ++에 요소를 추가 할 때 문제

  28. 28

    C에서 Bucket Sort를 사용하여 배열 정렬. 연결 목록에 새 요소를 삽입하는 코드 작동 방식에 대한 질문

  29. 29

    c에서 연결된 목록 코드를 사용하는이 삽입 정렬의 문제점은 무엇입니까?

뜨겁다태그

보관