Case 1:
buf内存区域在fun里有效,当fun返回时,buf指向的内存就回收了,因此一旦使用tmp访问就出现段错误。
Case 2:
buf被限制在左右括号里,出了作用域,buf不可见,但buf指向内存没有被回收,仍然是以前得。
Case 3:
由于str是堆内存,所以tmp指向栈内存没变。
Case 4:
在栈里定义了xxx,xxx就占用了buf那块内存,因此tmp打印处理是xxx的内存。
Case 1:
buf内存区域在fun里有效,当fun返回时,buf指向的内存就回收了,因此一旦使用tmp访问就出现段错误。
Case 2:
buf被限制在左右括号里,出了作用域,buf不可见,但buf指向内存没有被回收,仍然是以前得。
Case 3:
由于str是堆内存,所以tmp指向栈内存没变。
Case 4:
在栈里定义了xxx,xxx就占用了buf那块内存,因此tmp打印处理是xxx的内存。