char *s = sbrk(some_num);
if (s != (char *)-1) {
some_struct = (SomeStruct *)s;
some_struct->num = 8; //num is an int [*SEG FAULT OCCURS ON THIS LINE*]
}
디버깅 사용하여 gdb를하는 경우 :분할 오류 모든 값은 NULL이 아닌
p some_struct => (SomeStruct *) 0xef7100
p some_struct->num => 0
A는, 뭔가가 NULL 인 경우 SEG 오류가 발생하는 것을 이해 이전의 Q /에서,하지만이 예에서는 , some_struct, some_struct-> num 및 8은 모두 이 아닌입니다.
왜 분할 오류가 발생합니까? some_struct-> num을 int 값으로 설정할 수 있습니까?
Seg 오류는 포인터가 NULL 일 때만이 아니라 메모리에 잘못된 액세스 권한이있는 경우입니다. – SHR
실제로 확인할 수있는 최소한의 코드 만 게시하십시오. – BLUEPIXY
0xef7100이 유효한 포인터가 아니거나 num이 int가 아닌 int * –