혼자 이중연결리스트 공부 중인데 책 예제에서 strcpy함수를 쓴 이유를 모르겠습니다!

조회수 67회

'C언어로 쉽게 풀어쓴 자료구조' 라는 책을 통해 자료구조를 공부해나가고 있는 복학준비생입니다.

현재 이중연결리스트 파트를 공부 중에 있는데요.

삽입연산 예제를 보다가 이해가 안 되는 부분이 있어서 질문드립니다!

// 이중연결노드 정의
typedef int element;
typedef struct DListNode {
    element data;
    struct DListNode* llink;
    struct DListNode* rlink;
}DListNode;

// 삽입연산
// 새로운 데이터를 노드 before의 오른쪽에 삽입
void dinsert(DListNode *before, element data)
{
    DListNode *newnode = (DListNode *)malloc(sizeof(DListNode));
    **strcpy(newnode->data, data);**
    newnode->llink = before;
    newnode->rlink = before->rlink;
    before->rlink->llink = newnode;
    before->rlink = newnode;

}

책의 예제에서는 통일성과 설명을 위해 int형 데이터를 element라는 네임으로 재지정해준 것 같습니다.

여기서 저 별표친 부분이 이해가 안 갑니다.


strcpy(newnode->data, data);

data는 int임에도 불구하고 strcpy를 통해 인자값data를 newnode의 data에 대입하려더군요.

strcpy()는 char* strcpy(char* dest, const char* origin); 이므로 int형인 data를 넘기는 것 자체가 오류가 나는 걸로 알고 있고 실제로도 오류가 납니다.

분명 책을 집필하시는 과정에서 오류가 나는 예제가 없게끔 모든 예제를 직접 돌려보시는 걸로 알고있는데

newnode->data = data 라는 코드를 냅두고 저자분께서 왜 srtcpy( )함수를 쓰셨는지 궁금합니다.

감사합니다. :)

1 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.