리눅스 C언어 putty에서 세그멘테이션 오류 다시한번 질문합니다.
보미
질문 제목 : 세그멘테이션 오류 수정질문 요약 :리턴어드레스의 값의 에 f1함수 주소가 들어가있는데 이걸 원래대로 하는수정질문 내용 :
리눅스 푸티에서 한 작업입니다.
소스코드는 아래와 같습니다.#includestdio.h
void f1()
{
int i;
printf(In func1\n);
}
void f2()
{
int j, *ptr;
printf(f2 local: \t%p, \t%p\n, &j, &ptr);
printf(In func2\n);// 다른 분들의 말씀을 들어보면 여기에 딱 2줄정도만 추가하면 이게 정상적으로 실행된다고하는데
ptr = &j;
*(ptr+2) = f1;
}
void f3()
{
printf(Before invoke f2()...^^\n);
f2();
printf(After invoike f2... ^^()\n);
}
main()
{
f3();
}
컴파일 하게 되면 워닝은 뜨는데 그것은 신경쓰시지마시고
실행하게 되면 Before invoke f2()까지뜨고 아래는 세그멘테이션 오류가 나는데
이유는 f1이 스택구조상에서 리턴어드레스(retrun addres)값에 들어가서 retrun addres 다시 메인으로 돌아가지 못하고 세그멘테이션 오류가 나는걸로 알고있습니다.
그래서 결과가 After invoike f2... ^^ 까지 다 나올수 있도록 도와주세요
string 입력을 통해서 하는방법도 있으면 그것도 같이 알려주세요
ps. 저 소스에서 수정은 없고 추가 하는것으로...
-
큰솔
태현아 닉넴이 천재네요?
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2657642 | 출력부분에서.. | 앨버트 | 2024-06-08 |
2657620 | 파일 입출력 함수 반복문 .. | 서리서리 | 2024-06-08 |
2657594 | 인수의 존재 여부를 검사 (1) | 다이 | 2024-06-08 |
2657566 | 서비스팩을 설치하더니 잘되는데요.... | 감추어왔던 | 2024-06-08 |
2657538 | c 질문입니다 | 히나 | 2024-06-07 |
2657486 | while문 정의되지 않아서 발생하는 무한루프. (8) | 별솔 | 2024-06-07 |
2657461 | 파일복사질문드려요 | 이슬비 | 2024-06-07 |
2657433 | C 질문좀 할게요 ㅠㅠ | PinkPearl | 2024-06-06 |
2657402 | 시그널질문 ㅠㅠ | 주인님 | 2024-06-06 |
2657374 | 공백 제거 질문 | 연체리 | 2024-06-06 |
2657344 | 리눅스(CentOS) 프로그래밍 툴 (10) | 개힘 | 2024-06-06 |
2657319 | 구조체 상수 선언 질문이 있습니다.. | 가람 | 2024-06-05 |
2657288 | 3n+1문제 사이클 길이 구하기 질문합니다. | 아이돌 | 2024-06-05 |
2657258 | wilhe문 이용해서 하나만들어봣습니다. (1) | 퍼리 | 2024-06-05 |
2657233 | 배열에 여러가지 문자열을 저장할 수 있나요?? | 꺆잉 | 2024-06-05 |
2657204 | c언어 질문!! (2) | 달 | 2024-06-04 |
2657178 | c언어 초보에요ㅠㅠ 정말 궁금합니다!! (1) | 아지랑이 | 2024-06-04 |
2657148 | 열혈강의c 책내용질문. (10) | 적송 | 2024-06-04 |
2657117 | c언어를 올바르게 이해하고 잘못된부분을 고치고 싶습니다 ㅠㅠ | 봄 | 2024-06-04 |
2657090 | (열혈)도전 프로그래밍 도와주세요 ㅠ.ㅠ | 그대와나 | 2024-06-03 |