win10读文件时C语言申请内存空间最大能申请多少个

Posted 勇敢*牛牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win10读文件时C语言申请内存空间最大能申请多少个相关的知识,希望对你有一定的参考价值。

读大量文件时,只能读出前面的一半???

win10C语言申请内存空间最大能申请多少个???

malloc是开辟一个连续的空间,可能你电脑里没有连续的5M空间存在,所以会崩溃,就比方你开一个10000*10000的int型数组页可能会报错一样。

而咱们要申请15548/1024≈15MB块连续的内存,那怎么的电脑到底有没有15MB的连续内存呢?有没有针对这样问题的解决办法呢?我暂时想到的是既然没有连续的15MB内存,那就找申请3块,每块5MB,只是程序代码繁琐点而已了。坐等有木有好得办法了。

#include <stdio.h>
#include <stdlib.h>
typedef struct POS
	int year;
	int month;
	int day;
	char sex;
	int num;
POS;
long n=1;
POS * resd()
	FILE *fp;
	fp = fopen("C:\\\\Users\\\\牛鹏\\\\Desktop\\\\births.txt","r");
	if(fp)
		printf("读入成功"); 
	else
		printf("读入失败"); 
	
	fscanf(fp,"%d",&n);//读出的n为15548
	printf("\\nn=%d\\n",n);
	POS* pos = (POS*)malloc(sizeof(POS*)*(n));
	int i;
	for(i=0;i<n;i++)
		fscanf(fp,"%d,%d,%d,%c,%d",&pos[i].year,&pos[i].month,&pos[i].day,&pos[i].sex,&pos[i].num);
		printf("\\n第%d批%d,%d,%d,%c,%d",i,pos[i].year,pos[i].month,pos[i].day,pos[i].sex,pos[i].num);
	
	return pos;

int main() 
	POS *pos = resd();
	return 0;

以上是关于win10读文件时C语言申请内存空间最大能申请多少个的主要内容,如果未能解决你的问题,请参考以下文章

转:C语言申请内存时堆栈大小限制

C语言之内存空间

C语言中free()释放空间时报错

C语言动态内存管理

C语言申请内存?

C与C++申请动态内存空间的异同