const char *
매개 변수로 사용하는 함수를 작성하려고하는데 이런 종류의 데이터를 유용한 방식으로 함수에 전달하는 방법을 알아낼 수 없습니다. 기능이있는 경우 :
void tokenize(const char * c) { }
이 함수를 하드 코딩 된 값 (예 : 백 슬래시)으로 호출하고 싶습니다. 이에 접근하는 가장 좋은 방법은 무엇입니까? 하드 코딩 된 값을 어떻게 바꾸 const char *
나요?
문자열 리터럴은 const char *
매개 변수 대신 사용할 수 있습니다 .
tokenize("\\");
더 예시적인 예는 해당 문자열에 대한 포인터를 저장 한 다음 해당 포인터를 전달하는 것입니다.
const char *token = "\\";
tokenize(token);
그러나 char *
컴파일러에서 허용하더라도 문자열 리터럴은와 호환되지 않습니다 . 이것은 문자열 리터럴이 저장되는 방식과 관련이 있습니다. 일반적으로 메모리의 읽기 전용 영역에 위치하며 여기에 쓰려고하면 정의되지 않은 동작이 발생합니다. 대부분은 일종의 보호 오류 일 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다