작성
·
468
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
주어진 문자열의 끝을 나타내는 null 문자를 추가적으로 할당하는 것은 C언어에서 문자열의 끝을 구분하기 위해 필요합니다. null 문자는 문자열의 끝을 알리는 역할을 하며, 문자열 뒤에 따라붙입니다. 문자열에 null 문자를 포함시키지 않는다면, 문자열을 다루는 함수들이 문자열의 끝을 인식하지 못해 오류가 발생할 수 있습니다.
또한, ps = new char[strlen(animal)+1];에서 할당하는 크기는 문자열의 길이에 null 문자를 추가한 크기입니다. 문자열의 길이만큼 메모리를 할당하게 되면, 문자열의 끝에 null 문자를 추가했을 때 문자열의 크기가 변경되어 오류가 발생할 수 있습니다. 따라서 문자열의 길이보다 null 문자까지 할당하기 위해서는 문자열 길이에 +1을 해주어야 합니다.
null 문자가 필요없는 char형 변수에는 +1을 하지 않아도 됩니다. 하지만 문자열에는 반드시 null 문자가 필요하며, 그러한 이유로 문자열의 길이보다 +1만큼 더 메모리를 할당하는 것입니다.
여러분이 이해하실 수 있도록 설명해 드렸는데, 더 궁금한 점이나 다른 질문이 있다면 언제든지 물어보세요. 감사합니다!