1 2 3 4 5 6 7 8 9 10 | char* txtFunc() { char str[128]; ..... return str; } | cs |
지역 변수 또는 임시 변수의 주소를 반환하고 있습니다.
이건 무슨 문제가 야기될 수 있나용?..(주소값에 다른 데이터가 들어올 수 있는 문제?)
어떻게 바꿔야지 될가요?
1 2 3 4 5 6 7 8 9 10 | char* txtFunc() { char str[128]; ..... return str; } | cs |
지역 변수 또는 임시 변수의 주소를 반환하고 있습니다.
이건 무슨 문제가 야기될 수 있나용?..(주소값에 다른 데이터가 들어올 수 있는 문제?)
어떻게 바꿔야지 될가요?
주소만 반환됨
static char str[128];
반환 받아서 한번 사용하고 더이상 쓰지 않을건데 그럼 걍 냅둬도 문제가 되지 않을?
문자열 다 날아가나?
일회용이고 뭐고 저 주소를 반환받은 시점에서 str은 소멸해있다.
저거 반환 받으면서 바로 이렇게 쓰고 버리거든 strncpy_s(txt, 128, char* txtFunc(), 126); 이럼 문제 없지않을가?
제발 콘솔에 찍어보고 물어봅시다
strncpy_s(txt, 128, txtFunc(), 126)
해봤는데 잘됨 그냥 "지역 변수 또는 임시 변수의 주소를 반환하고 있습니다." 메세지가 떠서 물어보는거
그럼 저도 그로인한 사이드이펙트는 잘 모릅니다