#define ASDF "/tmp/test.log" 를 char *ASDF="/tmp/test.log" 로 바꾼다면 동일하게 동작할까요?
글쓴이: morolty / 작성시간: 목, 2014/10/02 - 10:07오전
기존 만들어져 있는 프로그램을 수정하는 중입니다..
일단 프로그램에서 /tmp/test.log파일을 참조하게 돼 있는데,
그걸 프로그램이 설치된 디렉토리의 하위 tmp 디렉토리로 바꾸는 작업을 하고 있습니다.
그런데 디파인으로 박아넣어버린 저런 ASDF라는 변수(?) 에 대해서는 상대주소를 대입할수가 없네요..
밑에서 프로그램이 설치된 디렉토리를 받아와서 그 후에 ASDF에 집어넣어야 할것 같은데요...
일단 상식적으로 생각해보면 별로 문제가 없을거 같긴한데 혹시나 이런작업 중에 뭔가 문제가 발생한 경험이 있으신분이 계실까 해서 질문드려봅니다..
읽어주셔서 감사합니다.
Forums:
동일하게 동작합니다만 원하신게 constant 로
동일하게 동작합니다만 원하신게 constant 로 넣을 게 아니라 나중에 받아와서 넣는 (업데이트하는) 걸 원하신다면
char ASDF [MAX_PATHNAME_LENGTH] = { '\0', };
으로 선언하시고
strncpy() 등으로 경로를 복사해서 넣으면 될 것 같네요.
감사합니다 ^^
감사합니다 ^^
이 상황에서 문제가
이 상황에서 문제가 됩니다.
http://msdn.microsoft.com/en-us/library/c7bt45zf.aspx
인접한 두 string literal은 하나로 합쳐지게 되는데,
string literal이 pointer to char로 변경되는 경우에,
이 기능을 이용한 부분이 문제가 될 수 있습니다.
다만 컴파일시 에러가 발생하므로 쉽게 찾을 수 있는 문제이기도 합니다.
댓글 달기