最后输出的并不是地址,而是b数组逻辑越界后的值(最后一个已经物理越界了),原因是你没把printf用括号睁掘察括进去,散孝导致printf不在内悉茄循环内
内循环加个大括号就好
for (i = 0 i < n i++){
for (j = 0 j < LINES j++)
{//加个大括号
br[i][j] = 2 * ar[i][j]
printf("%d", br[i][j])
}//
}
虚拟差好铅地址,是程序的地址,程序在 *** 作系统中有入口地址,而程序中的地址则是入口地址的相对位置袜烂。
物理地址就是,机器内主存的地址,包括RAM和ROM
虚拟地址就是,cpu支持的内存空间远远大于机器主存的大小,这些多出来的空间对于程序来说是可以用的,这个时候的所有地址都称为虚拟地址。
这个要学 *** 作系统才能理解,推荐看虚好
人民邮电出版社
你用的工具不正确,你用的这个窗口是用来看变量或寄存器的,不能直接看物理地址。你山培用memory window来看具体的内存地址:菜单view->memory window打开
在address中输入:d:0x30回车就能看逗凳唯到地址30H及以后的RAM数据了。
同理,c:0x30是粗棚看程序区的内容,x:0x0030是看外部RAM中的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)