• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

6.9 포인터연산과 배열인덱싱 연습문제 질문

19.10.11 17:00 작성 조회수 246

1

안녕하세요! 

선생님의 강의를 차근차근 배워가며 6.9까지 왔습니다. 

6.9 강의 마지막에 내주신 char형 데이터를 포인터연산과 While&Break를 사용하여 출력해보라는 과제를 주셨습니다.

KIM이 출력은 됩니다. 하지만 이후에 수많은 문자들과 함께 11dB이라는 문자도 출력됩니다. (참고로 XCode 사용중입니다.)

어떠한 점이 문제인지 도저히 모르겠어서 질문올립니다.

첫번째로 문제화면 올렸고 코딩은 아래 붙여넣었습니다.

#include <iostream>

using namespace std;

int main()

{

    char c[] = "KIM";

    char *ptr = c;

    

    while(true)

    {

    if(ptr == nullptr)

        break;

    else

    {

    cout << *ptr << endl;

    }

    ptr=ptr+1;

    }

}

    

시간 내주셔서 감사합니다!

    

답변 5

·

답변을 작성해보세요.

1

잘하셨습니다. 스스로 해결하실 수 있을 것 같았어요.

0

김도엽님의 프로필

김도엽

질문자

2019.10.12

해결했습니다! 감사합니다 ㅎㅎ

0

널 캐릭터랑 널 포인터랑 달라요

0

김도엽님의 프로필

김도엽

질문자

2019.10.11

빠른 답변 감사드립니다.

문자열 맨 뒤에 Null Character가 붙는다고 배웠습니다. 그래서 계속 주소를 1씩 더해가면서 Null pointer가 나오면 Break 하는 식으로 코딩하였습니다. 제가 아직 Null Character와 Null Pointer에 대한  학습이 부족한 부분일까요?

0

안녕하세요? ptr==nullptr에 대해 조금 더 생각해보세요. 문자열 맨 뒤에 추가로 뭐가 붙는 지에 대해서는 제가 여러 차례 강조를 했을겁니다.