两条4g内存只显示一条条问题

动不动就 32GB 以上内存的服务器真需要关心内存碎片问题吗? - 知乎971被浏览78245分享邀请回答16027 条评论分享收藏感谢收起accu.org/content/conf2008/Alexandrescu-memory-allocation.screen.pdfReconsidering Custom Memory Allocation1247 条评论分享收藏感谢收起查看更多回答4 个回答被折叠()内存条不兼容问题【电脑故障吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:370,821贴子:
内存条不兼容问题收藏
以前插两根内存条没关系。今天一开机就报错,结果必须拿掉一根内存条才能开机。怎么解决啊?
战神K680E-G6D1系列采用第七代英特尔酷睿i5处理器/英特尔,让性能更超凡!/券后价5199元!/甜点显卡/72%色域IPS屏 FHD/8G内存/128G SSD+1TB HDD
说明还是兼容性不好。我有个同事电脑,装两根内存,能开机,进入系统也能正常使用,就是经常出现蓝屏现象。后来,拔掉一根内存后,蓝屏再没发生过。还有一种情况不常见,就是内存插槽坏了。(实例: )
1可以把内存条调换下位置试试2擦拭那根不行的内存
擦擦内存的金手指,把后来加上的内存装到插槽2上,话说你的两根内存是什么样的啊?
我表姐的旧电脑也是,两条一样的内存,插任何一条都可以,同时插两条就开不了机。
首先排除内存条坏。时间久了,内存供电线路退化,插座与金手指氧化,所以原电压已经带不动两条了,先用一条内存启动,CMOS里把内存电压适当提升,再插另一条开机
我电脑是HP品牌的,内存是镁光DDR3,1333的,买了个威刚DDR3,1333的,刚装上没事,过了1个礼拜就电脑不能启动了,为什么,求大家告知!
两条内存频率不一样,内存兼容不是看牌子的 是看频率,1600MHz 1333MHZ 800MHz 667MHz 400MHz 1066MHz 2133MHz 333MHz 最好是相同频率,两根内存相差一级也能兼容,比如一根是1066就能兼容800的,1600能兼容1333的。还有就是内存永远是1G 2G 4G 8G 16G这样成倍增长,不能5G
登录百度帐号推荐应用内存有关问题,求解 - C++当前位置:& &&&内存有关问题,求解内存有关问题,求解&&网友分享于:&&浏览:7次内存问题,求解#include &
&stdio.h& 4。在对齐为4的情况下
struct & BBB
& long & num;
& char & *
& short & int &
& short & ba[5];
p=0x1000000; &
& //这句是什么意思?是说BBB的start地址是1000000么?
p+0x200=__?__;
(Ulong)p+0x200=__?__; &
& //这个(Ulong)是unsigned & long么?这样算对p的类型重新定义么
(char*)p+0x200=__?__; ------解决方案--------------------1.
p=0x1000000;
p是指向BBB的指针,这里只不过给p赋了一个值0x,表示p指向这个地方。
p+0x200=__?__;
等于0x + 0x200 * sizeof(BBB),由于p是BBB的指针类型,所以p是以BBB的尺寸作为一个单元来移动的
3. (Ulong)p+0x200=__?__;
等于0x + 0x200*sizeof(Ulong),将p强行解释为Ulong类型,所以p是以Ulong的尺寸作为一个单元来移动。
4. (char*)p+0x200=__?__;
等于0x + 0x200*sizeof(char*),同上,将p强行解释为char*类型,但注意是char*而不是char,cha*是指针,占四个字节,而char占一个字节
------解决方案--------------------int main()
p = (int *)0x1000000; //类型不匹配,而且或许它不允许你在这两个类型之间作隐式转换,可以强制转换
& & (p + 0x200)
& & ((unsigned long)p + 0x200)
& & (void *)((char*)p + 0x200)
& & //cout遇到一个char *会输出字符串而不是指针指,而这块内存,你可能没有读的权限,强制转换为其他指针类型就可以
------解决方案-------------------- / 0x进制的 这个市十进制 一样的
------解决方案--------------------默认的输出整数 是以10为基的 可以这样改下:
包含头文件:#include
& & ((unsigned long)p + 0x200)
& & 前面加上 cout & &setbase(16);
//用完后最好在后面加上 cout & &setbase(10);
------解决方案--------------------数值默认是十进制的,其他两个是指针值所以是按照16进制输出的
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有C++常见内存错误及解决方案
C++中内存错误通常属于运行时错误,只有在程序运行时才能发现,编译器无法自动检测到内存错误。多数情况下是程序逻辑或者参数存在某些错误。下面总结一下C++常见的内存错误:
1. 内存泄露
内存泄露是指应用程序未释放动态申请的且不再使用的内存,原因可能是程序员疏忽或者错误造成程序异常。
在C/C++中,动态申请的内存是在堆上的。内存管理器也不会自动回收不再使用的内存,也就是说如果忘记释放动态申请的内存,该内存区域是不允许重用的。如果发送此类的内存泄露,函数每执行一次就丢失一块内存。长时间运行改程序可能引起系统"内存耗尽"。
这个问题本身没有很好的解决思路。只能从编程习惯上入手,也就是说动态申请内存与释放内存必须匹配,亦即new和delete的调用次数必须相同。
未初始化的指针称为野指针(另一种说法是指向不可用内存区域的指针,不过笔者认为前者更合适)。通常对野指针进行写操作会发生不可预知的错误。
通常的避免方法就是在指针定义的时候就初始化,初始为NULL或者一个有意义的内存地址。对于动态申请的内存地址,在该内存释放之后,对应指针最好立即赋值为NULL。并在具体使用指针的时候判断指针的值是否有效(通常检测是否为NULL)。
3. 内存越界访问
内存越界访问通常发生在数组、字符串或者连续内存的访问。有两种情况:
读越界,即读了非有效的数据。如果所读的内存地址是无效的,程序会立即崩溃。如果所读内存地址是有效的,读入的时候不会有错误,但是读入的数据是随机的,可能会产生不可控制的后果。举个简单的例子,字符串的输出,如果没有结束符,会输出一堆乱码也可能输出正常,也就是说结果是不可控的。
写越界,亦称为缓冲区溢出,通常写越界会发生错误。内存写越界造成的后果是非常严重的。例如访问数组越界可能会修改访问数组的循环变量,造成死循环。另一个比较经典的例子就是缓冲区溢出攻击,试试上就是利用越界修改程序的栈空间,达到控制操作系统或者执行某些特定任务的目的。
这类问题几乎没有很有效的解决思路,只能由程序员控制好内存的访问,小心处理各种内存有关的操作。
4. 返回指向临时变量的指针
最经典的例子是一道面试题中关于字符串指针的返回函数,代码如下:
char * getString(){char b[] = "Hello, Tocy!";}
栈里面的变量都是临时的,函数执行完成之后,相关的临时变量和参数都会被清除。这也是程序不允许返回指向这些临时变量的指针的原因,因为函数执行结束后这些指针指向的数据是随机的,给程序造成不可预知的后果。
通常此类错误编译器会给出警告。解决思路很简单,在任何情况下不要返回函数的局部变量的任何指针,如果需要传递参数可以考虑使用返回值、参数或者全局变量(不推荐)。
5. 试图修改常量
在普通变量前面加上const修饰符,只是给编译器做类型检查用的。编译器禁止修改这样的变量,但这并不是强制的,完全可以用强制类型转换来处理,一般不会出错。例如下面代码:
int func(void){ const int IMAX = 3; int * pi = (int *)(&IMAX);
*pi = 4; cout && IMAX &&}
笔者在vc6和vs2008下运行该函数,输出都是3,编译运行没有任何错误和警告。至于有没有修改常量的值,有兴趣的读者可以自己看看反汇编的代码,相信你就会明白是否修改了常量的值(最终结果是修改了,只是编译器做了某些优化所以输出依然不变。)。
而对于全局常量和字符串使用强制类型转来处理在运行时仍然会出错,这是因为它们是存放在只读内存区("rodata"),只读内存区是不允许修改的。试图对其修改,会引发内存错误。
所以针对这种类型错误,笔者建议最好不要修改常量,除非万不得已。
6. 内存未分配成功,但已经使用
通常是由于程序员认为动态内存分配不会失败。解决思路很简单,在使用动态申请的内存时,首先检测指针是否为NULL(通常动态内存分配失败会返回空指针)。
7. 内存分配成功,但没有初始化
犯这种错误主要有两个起因:一是没有初始化的观念;二是误以为内存的缺省初值全为零,导致引用初值错误(例如数组)。
内存的缺省初值究竟是什么并没有统一的标准,尽管有些时候为零值,我们宁可信其无不可信其有。所以无论用何种方式创建数组,都别忘了赋初值,即便是赋零值也不可省略,不要嫌麻烦。
当然发生这种情况还有另外一个可能就是在动态创建类对象时类构造函数抛出异常(即申请动态内存成功,但是调用构造函数失败)。
另外如果出现下图
基本可以断定是内存问题,极有可能是指针异常引起的。当然还有其他原因,需要视具体情况而定。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。手机签到经验翻倍!快来扫一扫!
win7系统出现“为硬件保留的内存”问题的解决方案
29307浏览 / 35回复
&& &(本文提到的方法虽然不能百分之百保证解决此问题,但也算是目前为止处理此类问题成功率最高的了。)&&&&&& 请看上图,为硬件保留的内存占用了近4G。是不是很蛋疼?&&&&&对于这个问题的处理办法,现在网络上很多人的回答各种无脑跟风,大同小异,最常见的一个白痴解决方法是:”操作上的WIN+R键,调出“运行”对话框,输入msconfig命令,打开系统配置工具,选择“高级选项”,勾选“最大”方框即可解决。&&& &&&&& 这个方案我在百度所以便一搜,出来几百万条的结果。出现这种结果,我已经无力吐槽,已经找不到什么骂人的话来形容他们;但是我还是想要质问他们:你们自己按照这个方法去试过吗?你们摸着自己的良心说这个方法对于释放多余被占用的系统内存真的有效果吗?还是你们自己根本没有遇到过这种问题,然后看到一个人这么说,就都跟着脑残似的传播这种歪理邪说,来误导大家?三人成虎,后果是很可怕的。&&& &&&&&& 首先,如果你是安装的32位系统的windows7,你还想要识别你上安装的所有内存(内存容量在3.5G以上),那么请你重新安装64位系统。别给我说什么内存破解补丁,自欺欺人,对于系统稳定性是百害而无一利;除以上原因外,对于windows7系统为什么会出现大量内存资源被系统吞掉的问题,目前暂时还没有确切的答案。&&&&&&&&不过在下列情况下,是有可能导致这类问题的产生的:& & 1:使用软碟通之类的软件直接将windows7系统量产到内安装。导致问题的可能几率:35%& & 2:在安装系统之前用户曾经将主板上的CMOS电池取下又安装上。导致问题的可能几率:12%& & 3:在安装系统之前,用户新增加了某个硬件。比如:硬盘、光驱、显卡。导致问题的可能几率:65%& & 4:用户在安装系统的时使用的是主板上的集成显卡,安装完毕系统之后,又将显示器连接到独立显卡上使用。导致问题的可能几率:77%& & 以上数据是本人大量访问遇到这类问题的用户之后得出的数据,以及对百分比的大概估算,提供给大家仅供参考。&&& &&&&&&& 不管这类问题到底是由什么引起的,问题的核心还是在系统上。不管内存是被什么硬件占用的,系统确实自动给这个神秘的硬件分配了不小的内存。(一般8G内存用户,被占用4G左右,或者更多;而2G的用户,被占用800M到900M之多)。麻烦的是BIOS里往往也不会显示那些被系统分配到硬盘上的内存,自此似乎进入了死胡同,没有一个完美的修改方法;对于这类问题,如果我们暂时不能确定系统究竟哪个硬件分配了内存,我们就干脆对我们能掌握的资源入手,也就是一直提到的内存。除此之外,通过之前提到的BIOS里同样不显示完整内存容量来看,系统应该早在硬件开机自检之前就已经把一部分的内存分配走了。这里我们只能尝试所谓”硬改“的方式来强制修正系统,让它抛弃掉这部分为硬件加载的内存。&&&&&&&&&&&& 如果你是双通道用户,比如两条4G内存组成的8G内存用户,又或是两条2G组成的4G用户,亦或是4根2G组成的8G用户都可以采用重新拔插内存的方法来解决这个问题。具体的方法是:先操作组合键Ctrl+Alt+Del,选择启动”任务管理器“,选择”性能“标签,打开”资源监视器“,选择”内存“标签,查看自己电脑所显示的”为硬件保留的内存“的具体大小,色块颜色显示为水泥灰;然后记住你内存被硬件占用的容量大小,关机之后拔下对应容量的内存条,不要马上插到主板上,保持这个状态给电脑通电一次,之后关机再把内存条插上,即可解决这个问题,内存也识别正常。&&&&&&&&&&&& 举个例子。比如我现在看到的情况是为硬件保留的内存为4096MB,那么记住这个数值,直接关闭电脑,此时注意为了安全起见务必要完全切断电源。接着,查看主板上具体的内存数量,如果是4G双通道,那么拔下两个中任意一个内存条,放置到其他安全地方。给电脑通电,可以选择开机或者不开机,两种方式都可以尝试。接下来一直按住机箱上开机键,等待几秒钟直至电脑完全关闭。务必断开电脑电源之后,将之前拔下的内存重新插入主板内存插槽。等待数秒之后重新开机,进入桌面之后,开始-计算机-右键选择属性,查看此时电脑上显示的安装内存数量;80%的情况下成功修复此问题,此时系统识别内存正常。&&& &&&&& 其他的多通道内存用户以此类推,举一反三。& & 单通道用户如果遇到这类问题,那么可以尝试关机之后拔下整个内存条,不通电,直接插上,再次开机。由于单通道用户这方面的资料收集的很少,不能保证此方法的有效性。不过试一试总比不试来的强。&
(本文提到的方法虽然不能百分之百保证解决此问题,但也算是目前为止处理此类问题成功率最高的了。)&& &&对于这个问题的处理办法,现在网络上很多人的回答各种无脑跟风,大同小异,最常见的一个白痴解决方法是:”操作上的WIN+R键,调出“运行”对话框,输入msconfig命令,打开系统配置工具,选择“高级选项”,勾选“最大”方框即可解决。& & 这个方案我在百度所以便一搜,出来几百万条的结果。出现这种结果,我已经无力吐槽,已经找不到什么骂人的话来形容他们;但是我还是想要质问他们:你们自己按照这个方法去试过吗?你们摸着自己的良心说这个方法对于释放多余被占用的系统真的有效果吗?还是你们自己根本没有遇到过这种问题,然后看到一个人这么说,就都跟着脑残似的传播这种歪理邪说,来误导大家?三人成虎,后果是很可怕的。& & 首先,如果你是安装的32位系统的windows7,你还想要识别你上安装的所有内存(内存容量在3.5G以上),那么请你重新安装64位系统。别给我说什么内存破解补丁,自欺欺人,对于系统稳定性是百害而无一利;除以上原因外,对于windows7系统为什么会出现大量内存资源被系统吞掉的问题,目前暂时还没有确切的答案。& &&不过在下列情况下,是有可能导致这类问题的产生的:& & 1:使用软碟通之类的软件直接将windows7系统量产到内安装。导致问题的可能几率:35%& & 2:在安装系统之前用户曾经将上的CMOS电池取下又安装上。导致问题的可能几率:12%& & 3:在安装系统之前,用户新增加了某个硬件。比如:、、显卡。导致问题的可能几率:65%& & 4:用户在安装系统的时使用的是主板上的集成显卡,安装完毕系统之后,又将显示器连接到独立显卡上使用。导致问题的可能几率:77%& & 以上数据是本人大量访问遇到这类问题的用户之后得出的数据,以及对百分比的大概估算,提供给大家仅供参考。& & 不管这类问题到底是由什么引起的,问题的核心还是在系统上。不管内存是被什么硬件占用的,系统确实自动给这个神秘的硬件分配了不小的内存。(一般8G内存用户,被占用4G左右,或者更多;而2G的用户,被占用800M到900M之多)。麻烦的是BIOS里往往也不会显示那些被系统分配到硬盘上的内存,自此似乎进入了死胡同,没有一个完美的修改方法;对于这类问题,如果我们暂时不能确定系统究竟哪个硬件分配了内存,我们就干脆对我们能掌握的资源入手,也就是一直提到的内存。除此之外,通过之前提到的BIOS里同样不显示完整内存容量来看,系统应该早在硬件开机自检之前就已经把一部分的内存分配走了。这里我们只能尝试所谓”硬改“的方式来强制修正系统,让它抛弃掉这部分为硬件加载的内存。& &&如果你是双通道用户,比如两条4G内存组成的8G内存用户,又或是两条2G组成的4G用户,亦或是4根2G组成的8G用户都可以采用重新拔插内存的方法来解决这个问题。具体的方法是:先操作组合键Ctrl+Alt+Del,选择启动”任务管理器“,选择”性能“标签,打开”资源监视器“,选择”内存“标签,查看自己电脑所显示的”为硬件保留的内存“的具体大小,色块颜色显示为水泥灰;然后记住你内存被硬件占用的容量大小,关机之后拔下对应容量的内存条,不要马上插到主板上,保持这个状态给电脑通电一次,之后关机再把内存条插上,即可解决这个问题,内存也识别正常。& &&举个例子。比如我现在看到的情况是为硬件保留的内存为4096MB,那么记住这个数值,直接关闭电脑,此时注意为了安全起见务必要完全切断电源。接着,查看主板上具体的内存数量,如果是4G双通道,那么拔下两个中任意一个内存条,放置到其他安全地方。给电脑通电,可以选择开机或者不开机,两种方式都可以尝试。接下来一直按住机箱上开机键,等待几秒钟直至电脑完全关闭。务必断开电脑电源之后,将之前拔下的内存重新插入主板内存插槽。等待数秒之后重新开机,进入桌面之后,开始-计算机-右键选择属性,查看此时电脑上显示的安装内存数量;80%的情况下成功修复此问题,此时系统识别内存正常。& & 其他的多通道内存用户以此类推,举一反三。& & 单通道用户如果遇到这类问题,那么可以尝试关机之后拔下整个内存条,不通电,直接插上,再次开机。由于单通道用户这方面的资料收集的很少,不能保证此方法的有效性。不过试一试总比不试来的强。&
帮顶帮顶帮顶
我来总结一下——Windows 7 "为硬件保留的"占用过多解决方案两个方法:1. 摒弃32位Windows 7,安装64位Windows 7。2. 打开任务管理器>性能>资源监视器>内存,查看并记住"为硬件保留的内存"的具体大小,然后关机断电,然后拔下对应容量的内存条,然后开机一次(可以不进入系统),然后再关机断电,把前面拔掉的内存条插回去。
4F总结的貌似不怎么滴....
4F总结的貌似不怎么滴....
对 第7楼 kindseed 说:=========================真扯蛋,插拔就能好microsoft就不用花大钱去搞什马Whql认证了
想搞清楚去看看官方技术白皮书就知道了!!!
liusimin 发表于
对 第7楼 kindseed 说:=========================真扯蛋,插拔内存就能好micros...
你厉害,你出个解决方案啊,再这瞎叨叨啥
对 第9楼 lw5254 说:========================= 解决方案太多了,凭什么就因为你一句话我就要出解决方案??
你就是数字2单位的X,连装都不用装!辨识率超高
找了好久 ,看见你这个解决了 真的
不要纠结在系统上找原因 先排除是否有问题
单条拔了通电启动行不通 借了同事1g的插上大概能用870M 再换成自己4g的启动还是2.36G可用
楼主说的那些方法我都试过了,没用,然后用楼主的方法,我是2*2G的条子,但是拔下任何一根开机就报警,无法启动。所以,目前还在4G(1.49G可用)的状态。
虽然没看明白是什么意思,但是照这个方法试了一下,果然有用。。。谢谢啦!
不错不错。。。
不是很了解
woshi biji ben
我正版Windows 7集成显卡,2G内存硬件占用35M
刚抓的截图
支持键盘翻页 ( 左右 )&
您需要登录后才可以回帖&&&|&&&&&
用户名/注册邮箱/注册手机号
其他第三方号登录}

我要回帖

更多关于 没有内存条能开机吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信