반응형
원인
함수 내부에 선언한 로컬변수의 주소를 함수 밖으로 보낼 시 발생.
로컬변수는 함수가 리턴됨과 동시에 메모리에서 제거되므로 이미 사라진 변수의 주소를 참조해선 안된다.
#include <stdio.h>
char* func()
{
char arr[4];
return arr;
}
int main()
{
}
해결
가장 쉬운 방법으로는 리턴할 변수를 정적변수로 만들어주는 것.
정적변수의 사용을 피하고싶다면 로직을 다시 생각해볼 수 있다.
#include <stdio.h>
char* func()
{
static char arr[4];
return arr;
}
int main()
{
}
최근댓글