day

xiaoxiao2021-02-28  96

一内存管理技术 1存放常量字符串不同形式的比较重点2虚拟内存管理技术尽量理解

一、内存管理技术

1.1存放常量字符串不同形式的比较(重点)

如:   char* str = "hello";   char str[6] = "hello";

对于一个记录常量字符串的字符指针来说,指针指向的内容不可以改变,指针的指向可以改变;对于一个记录常量字符串的字符数组来说,指针指向的内容可以改变,指针的指向不可以改变;对于一个记录动态内存的字符指针来说,指针指向的内容和指针的指向都可以改变;

1.2虚拟内存管理技术(尽量理解)

  在Linux系统中,一般都采用虚拟内存管理技术来进行内存空间的管理,即:每个进程都可以有0~4G-1的地址空间(虚拟的,并不是真实存在的),由操作系统负责建立虚拟地址到真实物理内存/文件的映射,因此不同进程中的虚拟地址看起来是一样的,但是所对应的真实物理内存/文件是不一样的;   其中0~3G-1之间的地址空间叫做用户空间,而3G~4G-1之间的地址叫做内核空间,一般用户程序都运行在用户空间,不能直接访问内核空间,但是操作系统的内核提供了相关的API函数可以访问内核空间;

命令:$ time ./a.out 结果:   real - - - - - - 总执行时间;   user - - - - - -用户空间执行时间;   sys - - - - - - -内核空间执行时间;

作业:

int file_size(char* name) { int len = 0; FILE* fp = fopen(name, "rb"); if(NULL == fp) { return -1; } //获取文件大小的方法,要求掌握 fseek(fp, 0, SEEK_END); len = ftell(fp); fclose(fp); return len; }
转载请注明原文地址: https://www.6miu.com/read-62117.html

最新回复(0)