내가 힘든 시간 (내가 그것에 대해 복수 응답을 읽고) 활성화 기록을 이해 있습니다. 우리는 프로그램을 실행하기 시작 코드 int n(int a){
int b = a/2;
return a + b;
}
int main(){
int first = 1;
int second = n(first);
int
나는 무슨 일이 일어날 지보고 리눅스에이 코드를 실행하려고 : int fn(void) { return 0; }
int main(void) { __asm__("jmp fn;"); }
내가 실행이 SIGSEGV가 종료 할 어떤 이유가 표시되지 않습니다,하지만 그건 내가 무엇을 얻을. 스택이 어떤 식 으로든 main과 fn 내부에서 수정되지 않았기 때문에
처음 3 개의 질문에 대해 각각 6,4,3을 얻었지만, 마지막 질문을 찾는 방법을 모르겠습니다. 그러나 솔루션 설명서는 답변으로 7,5,4,18을 표시했습니다. int sum(int x[], int N) {
int k = 0;
int s = 0;
while (k < N) {
s = s + x[k];
k = k +
저는 최근에 Activation Record라는 용어를 사용했는데, 어떻게 작동하고 어떤 용도로 사용되는지에 관심이 많았습니다. 제 질문은 이것이 얼마나 깊이 갈 수 있었는지입니다. 이것은 스택 프레임이며 범위가 변경됨에 따라 레코드가 변경된다는 것을 알고 있지만 프로그래머가이를 얼마만큼 구현할 수 있습니까? 대부분의 IDE가 오류가있는 행을 파악하는 데