혼자 이중연결리스트 공부 중인데 책 예제에서 strcpy함수를 쓴 이유를 모르겠습니다!
조회수 539회
'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( )함수를 쓰셨는지 궁금합니다.
감사합니다. :)
댓글 입력