当前位置:首页
开发技术指南» 文章正文
    引言:

 ·以前做的teltel拨号器开源啦    »显示摘要«
    摘要: 以前做的teltel拨号器开源啦 有兴趣的大家一起讨论一下 :) http://commandown.host01.5ichina.net.cn ......
    摘要: this is a book 如何取得第一个s的位置4和第2个s的位置7? ......


面试两题,大家看看

今天面试,记得有两题是:  
  1.执行以下程序时会发生什么?  
        char   *p=(char*)malloc(1000);  
        p=p+10;  
        free(p);  
  2.创建一个2GB大小的文件.  
   
  第一个我回答是内存泄漏.  
  第二个一点都不懂  
 

NO.1   作者: vcmute

LARGE_INTEGER   li,lo;  
  li.QuadPart   =   i64;//或设置li.LowPart和li.HighPart;    
   
  SetFilePointerEx(h,li,&lo,FILE_BEGIN);

NO.2   作者: Snow_Ice11111

1 malloc是申请内存空间的命令,这里的p指向这块空间的首地址,后面p=p+10人为地改变了首地址,导致后面的释放空间命令free指向的首地址不是所申请空间的首地址,所以程序出现异常。  
 

NO.3   作者: alen_ghl

问题1   如Snow_Ice11111(雪上加冰)   所说,会出现程序异常  
  malloc和free要对应的使用,而且确保释放的起始地址与分配时相对应  
  如果不对应,释放时就不知道要释放多少内存

NO.4   作者: ljc_8111

问题1.     malloc   为p分配了一地址,是把堆上的一块地址的首地址指向了p,同时为了上p能管理这块内存肯定还要做一些其他的事,比如这块内存的大小,存放的数据类型什么的。但是p   =   p+10之后就问题来了,     因为这只是简单的把p+10的地址赋值给p   ,以前的信息都没有了,所以free的时候就有问题了。


    摘要: 这学期开了 微机原理和汇编语言 这门课,我是初学者,现在刚讲了微机原理的一点东西,可我就有2个地方不明白了,请高手给我说说,小弟先在这里谢谢了! q1:书上说:“在8088系统中,一个段的大小显然不能超过64kb”。 这句话我不明白,为什么不能超过64kb? q2:书上说:“首字节的物理地址以二进制表示最后4位总是全是0”。 这句话的前半部分我明白,我知道是二进制表示,可后半部分我就不明白......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE