Chinaunix

标题: 字符串数组存储在栈上还是数据段中? [打印本页]

作者: zsszss0000    时间: 2015-01-08 12:12
标题: 字符串数组存储在栈上还是数据段中?
各位:
int main()
{
      char str[]="hello world";
}
请问这里的“hello world”存储在哪里,用什么方法可以得知?
作者: daxiguagg    时间: 2015-01-08 13:13
VS里反汇编一下,"hello world"是存在数据段里的,数组str[]当然是在栈上了。
其实就是将数据段"hello world"的内容复制到了数组str[]栈上。
char str[]="hello world";
00413598  mov         eax,dword ptr [string "hello world" (4157A0h)]
0041359D  mov         dword ptr [ebp-14h],eax
004135A0  mov         ecx,dword ptr ds:[4157A4h]
004135A6  mov         dword ptr [ebp-10h],ecx
004135A9  mov         edx,dword ptr ds:[4157A8h]
004135AF  mov         dword ptr [ebp-0Ch],edx
作者: codechurch    时间: 2015-01-08 17:37
这样写当然是在栈上。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2