5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住

一名合格的程序员必须了解内存,C语言简直是为内存而生的,它比任何一门编程语言都贴近内存。

了解内存布局是学习C语言最简单、最直接、最有效的途径。

本文内容的是多年程序员的精华总结,希望对大家学习C语言有本质上的帮助。

哪位朋友需要完整电子档,在评论区给我说下,本人有时间了一一私发给大家哈O(∩_∩)O

另外,本人近期会陆续上传这些资料和视频教程,可以关注一下互相交流:C C++ Java python linux ARM 嵌入式 物联网等。

7.1 为什么这段代码不行?char *answer; printf("Type something:\\n");

gets(answer); printf("You typed \"%s\"\\n", answer);

7.2 我的 strcat() 不行.我试了 char *s1 = "Hello, "; char *s2 = "world!";

char *s3 = strcat(s1, s2); 但是我得到了奇怪的结果。

7.3 但是 strcat 的手册页说它接受两个 char * 型参数。我怎么知道 (空间) 分配的事情呢?

7.4 我刚才试了这样的代码 char *p; strcpy(p, "abc"); 而它运行正 常?怎么回事?为什么它没有崩溃?

7.5 一个指针变量分配多少内存?

7.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返 回串却是垃圾信息。

7.7 那么返回字符串或其它集合的争取方法是什么呢?

7.8 为什么在调用 malloc() 时, 我得到 “警告: 整数赋向指针需要类型 转换”?

7.9 为什么有些代码小心地把 malloc 返回的值转换为分配的指针类型。

7.10 在调用 malloc() 的时候, 错误 “不能把 void * 转换为 int *” 是什么意思?

7.11 我见到了这样的代码 char *p = malloc(strlen(s) + 1); strcpy(p,s); 难道不应该是 malloc((strlen(s) + 1) * sizeof(char))?

7.12 我如何动态分配数组?

7.13 我听说有的操作系统程序使用的时候才真正分配 malloc 申请的内 存。这合法吗?

7.14 我用一行这样的代码分配一个巨大的数组, 用于数字运算: double

*array = malloc(300 * 300 * sizeof( double )); malloc() 并没有返 回 null, 但是程序运行得有些奇怪, 好像改写了某些内存, 或者

malloc() 并没有分配我申请的那么多内存, 云云。

7.15 我的 PC 有 8 兆内存。为什么我只能分配 640K 左右的内存?

7.16 我的程序总是崩溃, 显然在 malloc 内部的某个地方。但是我看不 出哪里有问题。是 malloc() 有 bug 吗?

7.17 动态分配的内存一旦释放之后你就不能再使用, 是吧?

7.18 为什么在调用 free() 之后指针没有变空?使用 (赋值, 比较) 释放 之后的指针有多么不安全?

7.19 当我 malloc() 为一个函数的局部指针分配内存时, 我还需要用free() 明确的释放吗?

7.20 我在分配一些结构, 它们包含指向其它动态分配的对象的指针。 我在释放结构的时候, 还需要释放每一个下级指针吗?

7.21 我必须在程序退出之前释放分配的所有内存吗?

7.22 我有个程序分配了大量的内存, 然后又释放了。但是从操作系统 看, 内存的占用率却并没有回去。

7.23 free() 怎么知道有多少字节需要释放?

7.24 那么我能否查询 malloc 包, 可分配的最大块是多大?

7.25 向 realloc() 的第一个参数传入空指针合法吗?你为什么要这样做?

7.26 calloc() 和 malloc() 有什么区别?利用 calloc 的零填充功能安全 吗?free() 可以释放 calloc() 分配的内存吗, 还是需要一个 cfree()?

7.27 alloca() 是什么?为什么不提倡使用它?


5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住


5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住


5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住


5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住


5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住


5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住


5年程序员精髓总结—从内存分配上根本理解C语言,句句精品,码住


分享到:


相關文章: