c에 포인터 배열이있는 구조체

탐침

C에서 멀티 비트 트라이를 구현하고 있습니다. 세분화 오류 오류가 발생합니다. 프로그램을 실행할 때. 무슨 일이 일어나고 있는지 모르겠어요?

Multi bit trie의 노드는 다음과 같습니다.

struct MtNode{
        /* nodes is an array 8 elements. Each element is a pointer to its child node.*/
        MtNode* nodes[8];  // 2^stride = 2^3 = 8
        int   nexthop;
    };

각 노드는 다음과 같이 초기화됩니다.

typedef MtNode node;
node *init_mtnode(){
    node *ret = (node*) malloc(sizeof(node));   
    int size = (int)pow(2,STRIDE);
    for (int i=0; i<size ; ++i)
    {
           ret->nodes[i] = NULL;
    }    
    ret->nexthop = -1;
    return ret;
}

init_mtnode 메소드에 문제가 있습니까?

이하 롭 알 아시 미

여러 가지 가능한 이유가 있습니다.

  1. 당신은 확인하지 않습니다 malloc()에 대한 NULL달리 new하는 예외를 슬로우, malloc()반환 NULL오류가 발생합니다.

  2. 값을 계산 한 size다음 size시간 을 반복 하지만 배열은 8포인터 만 보유 할 수 있습니다 .

이 시도

typedef MtNode node;
node *init_mtnode()
{
    node *ret;
    int size;
    ret = static_cast<node *>(malloc(sizeof(node)));
    if (ret == NULL) /* check for NULL */
        return NULL;
    size = 2 << STRIDE;
    if (size >= 8)
        size = 7; /* maximum possible value */
    for (int i = 0 ; i < size ; ++i)
        ret->nodes[i] = NULL;
    ret->nexthop = -1;

    return ret;
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

구조체에 포인터 배열을 할당하는 C ++

분류에서Dev

배열이있는 관리되지 않는 구조체에 대한 C # 포인터

분류에서Dev

함수 포인터가있는 구조체 배열 초기화 C

분류에서Dev

c의 구조체에 배열 (포인터 아님) 전달

분류에서Dev

포인터 C로 구조체에 배열 연결

분류에서Dev

구조체 내의 동적 배열에 대한 포인터 C

분류에서Dev

C-동적 구조체 배열에 대한 포인터

분류에서Dev

구조체 내부 구조체에 대한 이중 포인터

분류에서Dev

C 구조체 / 포인터의 배열을 구조체의 배열로 선언

분류에서Dev

내부 포인터가 배열 인 구조체 (C)

분류에서Dev

구조체 내부에 구조체에 대한 포인터 배열 만들기

분류에서Dev

구조체 배열에 대한 포인터를 반환하는 C # marhsal 함수

분류에서Dev

C의 구조체 내에서 포인터가 가리키는 자유 배열

분류에서Dev

C : 포인터 배열에 구조체를 추가하는 방법

분류에서Dev

c에서 구조체 포인터 배열을 할당하는 메모리

분류에서Dev

C ++ 포인터에서 배열의 대상 구조체를 포함하여 구조체에 대한 값 읽기

분류에서Dev

포인터와 배열이있는 typedef 구조체

분류에서Dev

C에서 구조체의 멤버 인 배열에 대한 포인터 산술

분류에서Dev

배열이있는 두 구조에 대한 포인터로 액세스

분류에서Dev

구조체의 배열에 대한 포인터

분류에서Dev

구조체에 대한 포인터 배열 만들기

분류에서Dev

구조체의 포인터에서 배열 가져 오기

분류에서Dev

구조체 배열에 대한 포인터

분류에서Dev

구조체에 대한 포인터 배열 초기화

분류에서Dev

C의 구조체에 대한 포인터 배열에서 정보 얻기

분류에서Dev

함수에 전달 된 구조체의 배열에 대한 C 포인터

분류에서Dev

함수 포인터를 포함하는 c 구조체

분류에서Dev

C에서 구조체 포인터를 사용한 배열 할당

분류에서Dev

구조체의 포인터 배열에 구조체를 할당하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    구조체에 포인터 배열을 할당하는 C ++

  2. 2

    배열이있는 관리되지 않는 구조체에 대한 C # 포인터

  3. 3

    함수 포인터가있는 구조체 배열 초기화 C

  4. 4

    c의 구조체에 배열 (포인터 아님) 전달

  5. 5

    포인터 C로 구조체에 배열 연결

  6. 6

    구조체 내의 동적 배열에 대한 포인터 C

  7. 7

    C-동적 구조체 배열에 대한 포인터

  8. 8

    구조체 내부 구조체에 대한 이중 포인터

  9. 9

    C 구조체 / 포인터의 배열을 구조체의 배열로 선언

  10. 10

    내부 포인터가 배열 인 구조체 (C)

  11. 11

    구조체 내부에 구조체에 대한 포인터 배열 만들기

  12. 12

    구조체 배열에 대한 포인터를 반환하는 C # marhsal 함수

  13. 13

    C의 구조체 내에서 포인터가 가리키는 자유 배열

  14. 14

    C : 포인터 배열에 구조체를 추가하는 방법

  15. 15

    c에서 구조체 포인터 배열을 할당하는 메모리

  16. 16

    C ++ 포인터에서 배열의 대상 구조체를 포함하여 구조체에 대한 값 읽기

  17. 17

    포인터와 배열이있는 typedef 구조체

  18. 18

    C에서 구조체의 멤버 인 배열에 대한 포인터 산술

  19. 19

    배열이있는 두 구조에 대한 포인터로 액세스

  20. 20

    구조체의 배열에 대한 포인터

  21. 21

    구조체에 대한 포인터 배열 만들기

  22. 22

    구조체의 포인터에서 배열 가져 오기

  23. 23

    구조체 배열에 대한 포인터

  24. 24

    구조체에 대한 포인터 배열 초기화

  25. 25

    C의 구조체에 대한 포인터 배열에서 정보 얻기

  26. 26

    함수에 전달 된 구조체의 배열에 대한 C 포인터

  27. 27

    함수 포인터를 포함하는 c 구조체

  28. 28

    C에서 구조체 포인터를 사용한 배열 할당

  29. 29

    구조체의 포인터 배열에 구조체를 할당하는 방법은 무엇입니까?

뜨겁다태그

보관