C로 배우는 자료구조 및 여러가지 예제 실습
C로 배우는 자료구조 및 여러가지 예제 실습
수강정보
(23개의 수강평)
5899명의 수강생
스킬태그 #자료구조, #C
무료
지식공유자 : 권오흠
49회 수업 · 총 24시간 18분 수업
기간 : 평생 무제한 시청
수료증 : 미발급 강의
수강 난이도 : 초급
주운녕 프로필

search 함수의 선언 궁금증 주운녕 1달 전
search 함수는 main 문 위에 선언을 하지 않고, main 밑에 정의만 하여도 오류가 나지 않습니다. 이게 컴파일러의 차이인지, 혹은 search함수가 main문에서는 호출되지 않고, 다른 함수들에서만 호출되기 때문인지 궁금합니다. search 함수는 왜 main문 위에 선언해주지 않아도 오류없이 실행이 되는 걸가요?

0
박지훈 프로필

두번째 예제 질문있습니다! 박지훈 1달 전
두번째 예제 맨 마지막에 compressed[i] = '\0'은 \n이 들어가있는 위치에 널문자가 들어가는 건가요? 문자열 입력 시에 \n도 문자열에 들어가는 건지 궁금합니다

0
박지훈 프로필

메모리 동적 할당에서 메모리공간을 확장시킬 때 박지훈 1달 전
메모리 동적 할당에서 메모리공간을 확장시킬 때, 50분쯤에 있는 코드에는 원래 array에 할당되어있던 메모리 공간이 쓰레기값이 되어버리는 하자가 있다고 하셨는데요. 그렇다면 저 코드 대신에 realloc을 사용하는 방법이 있는 걸로 알고있는데요! realloc을 쓰면 안좋은 점이라도 있는건가요?

0
이성준 프로필

realloc함수 쓰지 않는이유 이성준 6달 전
realloc함수로 메모리를 재할당하지않고 reallocate함수를 따로 만드는이유가 뭔가요?

0
BWYWB 00 프로필

안녕하세요 교수님. free()관련해서 질문 있습니다. BWYWB 00 2019.06.28
안녕하십니까. 이렇게 좋은 강의 무료로 공부할 수 있게 해주셔서 너무 감사합니다.  이번 강의에서 궁금한 부분은 유저 함수 `remove()`에 대한 부분입니다. 중간에 `strdpu()`의 내부구조는 이와 비슷하다고 하시면서 보여주신 코드에는 `malloc()`함수를 사용해서 메모리를 동적으로 할당 받는다는 것을 알았습니다. 이번 강의의 `remove()` 함수를 보면 삭제할 요소에 마지막 요소의 주소 값을 넣는 것을 보았는데 이 경우에 heap 영역에 남아있는 유저의 데이터를 free()를 사용하여 할당 해제하고 싶습니다. 이런 경우에는 주소값을 대입하기 이전에 삭제할 요소의 두 주소값을 free()에 넣어주면 되는걸까요?

0
보경공 프로필

동적으로 할당된 메모리의 life time 관련하여 질문 있습니다. 보경공 2019.01.11
동적으로 할당된 메모리는 free()함수를 호출하지 않는 이상, 계속 유지된다고 하셨는데요.프로그램이 끝나고도 계속 유지되는 건지, 프로그램이 종료되면 전역 변수처럼 소멸되는 건지 궁금합니다.

0
류성윤 프로필

Node에 대한 코드 안에 링크필드 선언할 때 류성윤 2018.10.19
struct node next와 struct node prev로 쓰셨는데 저것을 포인터 형으로 적어야 하는 것 아닌가요??포인터형이 아니라면 컴파일이 안되지만 만약에 된다면 저대로 구조체 안에 다른 구조체가 메모리 할당 된다고 볼 수 있나요?

0
whazzulookinat 프로필

stack 구현에서 동적할당중 형변환의 유무에 관한 질문 whazzulookinat 2018.08.18
안녕하세요, 강의 잘 수강하고 있습니다. 다름이 아니라, array를 이용한 stack의 create()함수에서는 Stack s = (Stack)malloc(sizeof(struct stack_type))을 썼는데, linked list를 이용한 stack의 create()함수에서는, malloc 앞에 (Stack)가 빠져있습니다. 혹시, 형변환을 하지 않아도 되는 특별한 이유라도 있는건가요??

0
박성진 프로필

find함수가 제대로 작동을 안합니다 박성진 2018.11.28
Node find_item(char item) {Node *temp = head;while (temp!=NULL) { if (strcmp(temp->data, item) == 0) { return temp; } else { temp = temp->next; }}}이렇게 쓰고 메인 함수에Node head = (Node )malloc(sizeof(Node));head->data = "monday";head->next = head;Node *tem=find_item("monday");printf("%s", tem->data);이런 식으로써넣었는데 아무것도 안나오더라구요 왜그럴까요 그리고 왜 함수들을 void형식이 아닌 Node 형식으로 만드나요?

1
JJ 프로필

3강 문자열에 등장하는 코드에 관한 질문입니다. JJ 2018.07.07
```/ strdup이 비표준이라 같은 기능을 하는 코드를 main내에 직접 삽입하였습니다. /include include int main() {int i=0;char *words[100];char buf[100];while(i<4 && scanf("%s", buf)!=EOF) { char * tmp=(char *)calloc(strlen(buf)+1, sizeof(char)); /* 1 */ if(tmp!=NULL) { strcpy(tmp, buf); words[i++]=tmp; }}for(i=0 ; i<4 ; ++i) { printf("%s\n", words[i]);/* 2 */return;}```저는 위 코드를 다음과 같이 이해했습니다. 즉, <tmp 포인터는 블록안에서 선언되었기 때문에 while문을 빠져나오면 words[n]의 각 첫바이트의 메모리 주소를 저장한 tmp안의 주소값은 생성과 소멸을 반복하다 마지막에 자동 소멸되나, 각각의 words[n]에 담긴 문자열은 소멸되지 않는다. 또한, 원하는 결과를 다 얻고 나서 calloc에 의해 생성된 메모리를 만일 소거하고 싶다면,위 '2' 자리에for(i=0 ; i<4 ; ++i) {free(words[i]);를 삽입하면 된다.>위와 같이 해석하는 것이 맞는지 확인해 주시면 고맙겠습니다. 덧붙임> 좋은 강의 올려 주셔서 고맙습니다. 남은 파트도 열심히 잘 들을께요^^

0
InSpirit 프로필

컴파일 실행 중에 오류가 났는데, 구글링으로도 해결방법을 모르겠어서 남깁니다. InSpirit 2018.06.22
에디터는 VSCode 쓰고 있습니다. 컴파일 실행할 때 C:UsersUserAppDataLocalTempcc6TaPRa.o:14_3_main.cpp:(.text+0x47): undefined reference to read_line(_iobuf*, char*, int)' C:\Users\User\AppData\Local\Temp\cc6TaPRa.o:14_3_main.cpp:(.text+0xf6): undefined reference toread_line(_iobuf, char, int)' C:UsersUserAppDataLocalTempcc6TaPRa.o:14_3_main.cpp:(.text+0x13b): undefined reference to read_line(_iobuf*, char*, int)' C:\Users\User\AppData\Local\Temp\cc6TaPRa.o:14_3_main.cpp:(.text+0x180): undefined reference toread_line(_iobuf, char, int)' collect2.exe: error: ld returned 1 exit status string_tools.h에 정의한 read_line함수를 읽지 못하는 것 같은데, 이유를 모르겠습니다

0
깜비 프로필

21분23초 char **tmp1에서 캐스팅을 해주는 이유는 무엇인가요? 깜비 2018.09.11
char tmp1 = (char )malloc(capacitysizeof(char )); 에서 (char )로 캐스팅을 해주는 이유가 무엇인가요?C언어 기초와 병행하며 강의를 듣는 중이라 잘 이해가 되질 않네요! 도와주세요!

2
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스