zoukankan      html  css  js  c++  java
  • char数组最大长度

    Q: 请问char数组最大能多少?是否无法超过1024?


     


    我指定char   test[300*1024]的时候没有任何问题,而char   test[1024*1024]就会出错,是否char[]无法超过1024*1024?  


      因为我需要在程序运行中,读取一个文件到内存,而文件大小不固定,大多数时候超不过300k,但是考虑到万一超过300k的情况,所以希望设置大一点。 


    A1: 


    需要更大的内存空间,可以使用动态内存分配,最大不超过2G(看你的机子内存而定)  ,可以用new   或   malloc  


    A2:


    只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出   
      在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。 so.综上。Bomb....栈暴了。。。


    A3:


    在VC中栈的缺省值为1M,所以当你分配1024*1024个char后,栈就溢出了。读取文件时,一般来说不会全部读入,只读要用的部份,如果必须全部读入,大多数使用堆上内存。如果确有需要,在VC中是可以调整栈内存的大小,选项是/statck.  


    A4:


    实用共享内存文件影射方式,UNIX上可以处理几十个G的数据,在PC机上没试过   
      另外,建议修改程序结构,不要因为程序的原因影响应用功能。


    A5:


    学习!如果是需要   超过实际内存空间的大小,那还是申请硬盘空间好了.   
      最好自己做个虚拟内存,页交换,表交换什么的...这样子过不了多少时间,可以搞个os来了...   
      发达了...


    A6:
  • 相关阅读:
    基于.net mvc 的供应链管理系统(YB-SCM)开发随笔1-开篇
    基于.net mvc 的供应链管理系统(YB-SCM)开发随笔
    asp.net http to https
    html嵌入音频
    语义化练习分区域
    html文档引用css使用外部样式表
    字体样式 圆角边框
    HTML-标签
    前端基础—客户端
    html初识form表单
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318420.html
Copyright © 2011-2022 走看看