| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3020 人关注过本帖
标题:新手的求助 FILE 使用问题
只看楼主 加入收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

不要選我當版主
2015-03-12 14:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
32位程序最大的內存量是2G,儘管再調大就是了。

授人以渔,不授人以鱼。
2015-03-12 14:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你現在285個文檔,所佔用的空間就是生成文檔AAAA.csv的大小,現在是7M,我開了100M,應該可以滿足3000個文檔的使用。如果到達G級,才需要考慮用文件虛擬內存,即把AAAA.csv直接當內存用,連最後寫盤的延時也省掉。

授人以渔,不授人以鱼。
2015-03-12 14:56
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
T版,你破功了,還是又遇到新問題了?
原本我想之前檔案輸出完畢後,再處理第二個檔案,
但是又不想繼續占用內存空間,於是在VC裡Call了DLL檔,
才發現單行最大字符數,介於40萬到50萬間,超過就出現堆疊溢位(Stack Overflow),
好像無法無限拉長? 難道這又是VC的DLL的預設限制嗎?還是這真的是VC陣列的極限長度?
图片附件: 游客没有浏览图片的权限,请 登录注册

不要選我當版主
2015-03-12 18:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你這樣寫是在棧上分配了,不是在堆上,用malloc()或calloc()才是。

授人以渔,不授人以鱼。
2015-03-12 19:28
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
棧?堆?老師沒教過耶。

原來 Stack = 棧  Heap:堆
http://support.

不要選我當版主
2015-03-12 20:55
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 12楼 TonyDeng
内存地址是无符号32位。
对32位Windows来说,其虚拟地址空间总数就是2的32次方,即4GB。如果没有在引导时加上/3GB或/BOOTVA选项,Windows默认最大会分2GB给内核模式程序使用,2GB给用户模式程序

[ 本帖最后由 wmf2014 于 2015-3-12 21:00 编辑 ]

能编个毛线衣吗?
2015-03-12 20:58
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用TonyDeng在2015-3-12 19:28:42的发言:

你這樣寫是在棧上分配了,不是在堆上,用malloc()或calloc()才是。


意思是靜態配置所使用到的空間是屬於stack,而動態配置所使用的記憶體空間是屬於heap?
用malloc()或calloc()是動態配置,是屬於heap?
而用new或[?]是靜態配置,是屬於stack?
而stack => VC compiler :  size of  stack is defaulted  1M bytes or you may  modify it with linker.

是這樣的意思嗎?

不要選我當版主
2015-03-12 21:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 17楼 wmf2014
是的,用户程序最大用2G

授人以渔,不授人以鱼。
2015-03-12 21:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 18楼 wube
malloc是C语法,new是C++语法,都是堆分配。局部数组在栈分配。

授人以渔,不授人以鱼。
2015-03-12 21:58
快速回复:新手的求助 FILE 使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018481 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved