안녕하세요. 13.5 강의를 듣고 실습 중에 궁금증이 생겨 질문 드립니다. FILE* fp = fopen("sample.txt", "rb"); int n = 100; int* parr = (int*)malloc(sizeof(int)*n); for (int i = 0; i < n; ++i) *(parr + i) = i * 2; 위와 같이 if(!parr) exit(1); 부분을 빼놓고 코드를 작성하니 "NULL 포인터 parr+i 를 역참조 할 수 없다"고 MSVS에서 표기가 뜹니다. exit(1) 은 프로그램을 종료 시키는 것으로 알고 있었는데 동적할당 메모리 parr 이 처음 선언될 때 할당된 메모리의 첫 번째 주소를 리턴 받은게 아니라 NULL 로 리턴을 받을 수 있는 가능성이 있어서 MSVS에서 미리 경고를 주는 것일까요? 코드 실행 자체는 잘됩니다.
빌드를 해보던 도중 printk("dev_id:0x%x \n", (unsigned int)action->dev_id); 해당 줄에서 언사인드 인트가 포인터 인트 형 문제라고 하는데 printk("dev_id:%p\n", action->dev_id); 이렇게 바꿔서 진행해도 될까요? 아니면 워닝 무시하고 해보면 되나요?
여기서 헤드 포인터가 가리키는 데이터가 텍스트 세그먼트에 있기떄문에, 텍스트 세그먼트에 있는 데이터들은 프로그램이 만들어질떄 프로그램 파일에 포함이 되기 떄문에 수정이 불가능하다고 하셨는데, 그 이전에 문자열은 읽기 전용 데이타 세그먼트에 저장된다고 하셨는데, 왜 24분2초쯤에선 읽기전용 데이터 세그먼트가 아닌 텍스트 세그먼트에 저장된다고 하시는지 이유가 궁금합니다. 위 표의 프로그램 코드가 읽기 전용 데이터 세그먼트도 포함하는거라고 보면 될까요?
안녕하십니까 '더미 헤드를 갖는 리스트로 개선 및 검증' 학습하던 도중에, 마지막 노드인 'jang'을 삭제할 시에 읽기 엑세스 위반 오류가 뜨면서 정상적인 종료가 되지 않았습니다. 디버깅으로 살펴보니 pPrev->pNext도 마지막 노드이다 보니 NULL인 상태에서 pPrev->pNext 도 동일하게 NULL 인상태에서 발생한 문제인듯 합니다. 제생각에는 마지막 노드를 삭제할때는 pPrev->pNext NULL 경우에 대한 IF 절을 넣는게 맞아보이는데 맞는 조치일까요?
안녕하세요. char cookies[1] = {'A',}; 위 코드에서 이해가 안되는 점입니다. 문자 배열은 NULL 문자까지 포함해서 크기가 2여야 하는게 아닌지요? 위 배열 처럼 크기가 1인 경우 &cookies 주소의 바로 다음 주소가 NULL이되는 건지? (NULL은 어디에?) 이를 확인해 보기 위해 printf("%c\n", *(&cookies[0]+1)); 을 해보았으나 ? 가 출력되더라고요 다른 질문을 보니 , (콤마)의 경우 자동으로 NULL문자를 만들어 주기 위함으로 붙이는데 크기가 1인 배열에도 붙여 줘야 하는건지 궁금합니다.
안녕하세요, 강사님. 매번 빠르게 기출 분석 및 해설 강좌 업로드 해주심에 대단히 감사드립니다!!! 😄 글 제목과 관련된 위의 영상에서 말씀해주셨습니다만, 아직 인프런 강의 목록에서는 확인을 하지 못하여서요... 2편은 포함하여, 강의 업로드 계획을 문의드리고자 글 남깁니다. 항상 고생 많으십니다 ㅜㅜ 감사합니다.
17분 경에 나오는 다음 코드에 대해 제가 올바르게 이해 한 것인지 궁금해서 질문 드립니다. // 강의 17분 경 코드 const int** pp2; int* p1; const int n = 13; pp2 = &p1; *pp2 = &n; *p1 = 10; 제가 이해한 부분들입니다. 애초에 포인터 변수 p1 이 const 포인터 변수가 아닌데 이중포인터 변수 pp2 에 대입이 된 부분부터 일단 잘못 되었다. *pp2 = &n 은 *p1 = &n 과 동일하다. p1은 const 포인터 변수가 아닌데 const 변수 n의 주소가 대입되어 p1이 n의 값을 변경할 수 있게 되었다. 질문입니다. 포인터 변수에서 const가 데이터 타입 왼쪽에 있으면 indirection을 하지 못하게 방지 하는 역할로 알고 있는데 *pp2 = &n 이 어떻게 경고 없이 컴파일 된건지 궁금합니다. const 데이터 변수의 주소를 대입해서 그런걸까요?
['f','i','r','s','t','\0','r','i','n','g']을 for문으로 첫 번째 인덱스부터 끝까지 %c로 출력하면 first ring이라고 하셨는데, '\0' 널문자가 %c로 출력하면 공백이 되나요? 출력 결과가 "first ring"이 되는지, "firstring"이 되는지 모르겠습니다.