当前位置:首页 » 编程语言 » c语言文件内存计算
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言文件内存计算

发布时间: 2023-03-30 21:30:22

① 如何用c语言获取文件的大小

intfile_size(char*filename)

{

FILE*fp=fopen(filename,"r");

if(!fp)return-1;

fseek(fp,0L,SEEK_END);

intsize=ftell(fp);

fclose(fp);

returnsize;

}

(1)c语言文件内存计算扩展阅读

C语言获取文件长度及全部内容

FILE*fp;

fp=fopen("localfile","rb");//localfile文件名

fseek(fp,0L,SEEK_END);/*定位到文件末尾*/

flen=ftell(fp);/*得到文件大小*/

p=(char*)malloc(flen+1);/*根据文件大小动态分配内存空间*/

if(p==NULL)

{

fclose(fp);

return0;

}

fseek(fp,0L,SEEK_SET);/*定位到文件开头*/

fread(p,flen,1,fp);/*一次性读取全部文件内容*/

p[flen]=0;/*字符串结束标志*/

② 【C语言】计算文件长度,把文件内容读取到内存中

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
main ()
{
string str;
ifstream f1 ( "1.txt" );
if (f1.fail())
{
cerr<<"open failure on 1.txt"<<endl;
return 1;
}
ifstream f2 ( "2.txt" );
if (f2.fail())
{
cerr<<"open failure on 2.txt"<<endl;
return 1;
}
ofstream out ( "3.txt" );
if (out.fail())
{
cerr<<"open failure on 3.txt"<<endl;
return 1;
}
while ( getline (f1, str))
{
out<<str<<endl;
}
while ( getline (f2,str))
{
out<<str<<endl;
}
f1.close();
f2.close();
out.close ();
return 0;
}
可以参照这个试试

③ c语言联合体内存计算

你的意图我不是很明白,就说说我知道的地方吧,
联合体就是你声明的所有变量他们的起始地址是相同的。换句话说他们公用一块地址。所以整个联合体的大小取决于内部变量占用空间最大的。
看看你联合体内的成员
a占4字节
b[9]
占9个字节
c占8个字节,所以按照最大的计算,联合体啊占大小9个字节,但是他还要满足第二个条件,就是大小必须是内部成员基础类型的整数倍。你的基础类型是int
4字节
char
1字节
double
8字节
取公因数并且要比9大所以他的大小事16个字节。
第二个问题,你直接为一个该结构体的指针赋值(这种做法很危险,因为你不知道指向的空间具体是什么内容),所以
pp
就指向了一个空间,然后
qq=pp+0x10
这里你要注意,并不是简单地pp的地址值上加上0x10编译器对这里的理解是
现在眼前有很多的该结构体类型,他们紧密排列,如果pp的编号是1
那么qq的编号是1+0x10
所以说qq的实际指向地址

0x100000(pp的地址)+sizeof(dt)(每个结构体的大小)*0x10
注意结构体大小是16
是十进制
转换成16进制也就是0x10
结果正好是0x100100了
所以最后的输出就是输出他们指向的地址值。

④ C语言中如何计算一个数组占内存多少空间

如果一个数组的长度是n(即有n个元素),元素的类型是XXX,则n*sizeof(XXX)就是这个数组所占内存空间的字节数。

⑤ C语言中如何计算一个数组占内存多少空间

首地址由数组名表示,也是0元素的地址。
若有: int a[10];
则:a与&a[0]都表示a数组所占存储空间的起始地址

⑥ c语言如何计算文件大小

#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE*fp;
int a;
if((fp=fopen("1.txt","rb"))==NULL)
{
printf("此文件无法打开");
exit(0);
}
fseek(fp,0,2);
a=ftell(fp);
printf("%d\n",a);
fclose(fp);
}
望采纳!