inflearn logo
강의

講義

知識共有

C開発者のための最小限のC ++

ステップ1: 基本的なオブジェクト化 - コード解説

nullprt vs null

解決済みの質問

153

connell

投稿した質問数 4

0

안녕하세요.

마지막 주소록 예제를 따라하면서 궁금한 부분이 있어 질문드립니다.
두 가지 예제를 비교했을 시, 포인터를 초기화 시, NULL / nullptr 두 가지 방식을 모두 사용되고 있습니다. NULL로 초기화와 nullptr 초기화 방식에 있어, 어떠한 기준이 있는지 궁금합니다 ~

int MyList::addNewNode(const char* pName, const char* pPhone)
{
	UserData* pNewUser = nullptr; // nullptr로 초기화

	if (findNode(pName) != nullptr)
		return 0;

	pNewUser = new UserData;
	strcpy_s(pNewUser->name, sizeof(pNewUser->name), pName);
	strcpy_s(pNewUser->phone, sizeof(pNewUser->phone), pPhone);
	pNewUser->pNext = NULL; // NULL로 초기화

	return 0;
}
void CMyList::releaseList(void)
{
	CUserData *pTmp = m_Head.pNext;
	CUserData *pDelete = NULL;

	while (pTmp != NULL)
	{
		pDelete = pTmp;
		pTmp = pTmp->pNext;

		delete pDelete;
	}

	m_Head.pNext = NULL;
}

c++ microsoft-windows 객체지향 디자인-패턴

回答 2

0

nullnull8537

요즘 인프런 AI 답변이 꽤나 훌륭하네요. 참고하시면 되겠습니다. 😄

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

Connell님, NULLnullptr의 차이에 대해 설명드리겠습니다.

C++11 이전에는 포인터를 초기화할 때 NULL을 사용했습니다. 그러나 NULL은 단순히 정수 0을 의미하는 매크로에 불과하며, 타입에 대한 명확성이 부족하여 컴파일 시에 여러 가지 문제가 발생할 수 있었습니다.

C++11부터는 이러한 문제를 해결하기 위해 새로운 키워드 nullptr가 도입되었습니다. nullptr는 명확히 “포인터가 없음을 나타내는” 타입인 nullptr_t로, 컴파일러가 더 많은 타입 체킹을 수행할 수 있도록 도와줍니다. 따라서, 타입 안전성을 높이기 위해 C++11 이상을 사용한다면 nullptr를 사용하는 것이 권장됩니다.

예제 코드에서는 두 가지 초기화 방법을 모두 사용하고 있지만, 코드의 일관성을 위해 C++11 이상의 환경에서는 nullptr를 사용하시는 것이 좋습니다.

추가로 자세한 내용을 알고 싶다면 다음 링크를 참조하세요:

이해가 잘 되셨길 바라며, 더 궁금한 점이 있으시면 언제든지 질문해 주세요!

인터페이스 상속과 추상 자료형 2:00 질문

0

50

1

13분 42초의 예제

0

52

2

네임스페이스 스코프 내에서 정의된 변수, 함수들이 위치하는 곳 질문

0

47

1

소멸자 가상함수 질문

0

55

2

이동생성자의 매개변수로 넘어가는 임시객체의 값 유지 관련하여 질문이 있습니다.

0

63

2

임시 객체 복사 생성자 질문드립니다

0

66

2

변수 바인딩에 대한 의문점

0

113

1

C++ 파일 구조 질문

0

128

1

빈 포인터에 멤버함수 호출

0

104

1

파생클래스에서 virtual함수를 선언에 대한 질문입니다.

0

116

2

순수 가상 클래스 선언과 일반 인트 변수의 선언과 다른가요?

0

137

2

안녕하세요. 이동의미론에 대해 제가 잘 이해했는지 궁금합니다.

0

132

1

인스턴스의 개념에 대해 int a(3), int(5) 예시를 바탕으로한 질문입니다.

0

189

2

식별자 검색 순서 관련 namespace 생략 관련 오류에 관한 질문

0

175

1

마지막 주소록 예제 c 파일 한글 깨짐 현상

0

190

1

쓸데없지만 질문드리고싶습니다

0

181

1

복사 생성자 질문 드립니다.

0

221

1

생성자 궁금한거 있습니다

0

218

2

단순대입 오류 발생 이유

0

235

1

네가지 형변환 강의 질문

0

283

1

CMyString Step10 강의 질문

0

174

1

임시 객체와 보이지 않는 복사 생성 강의 질문

0

268

2

섹션8 3번째 강의 (실습 프로젝트 - 문자열 필터개선) 질문

0

219

2

차이점을 잘 모르겠습니다.

0

233

1