![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 76
ZachZheng
活泼阳光,乐观自律
展开
-
程序的组成部分
一、程序的组成部分 如上图所示。程序由code到stack地址由小到大,code之前有一段不可读的区域,stack之后是不可访问的系统代码区。 text+data+bss的大小是在程序编译阶段确定的。主要分为以下部分:code 代码段。指的是存储程序代码的区域 bss 未初始化的全局变量和静态数据 data 初始化的全局变量heap 堆区,由程序员分配释放,若程序员原创 2016-02-13 09:55:08 · 2620 阅读 · 0 评论 -
野指针和常见内存错误
文章目录野指针野指针产生的原因野指针野指针:野指针不是 NULL 指针,是指向 “垃圾内存” 的指针;野指针产生的原因指针变量没有初始化;没有初始化的指针,指向是随机的;// 正确的初始化方式char* p = NULL; char* str = (char*) malloc(100);指针 p 被 free 或者 delete 之后,没有设置 NULL,让人误以为是...原创 2019-09-06 09:03:06 · 184 阅读 · 0 评论 -
内存越界访问
文章目录内存越界访问例子内存越界访问例子int *a;*a = 0x12345; //为什么是错误的?当定义int a时,a的值是不定的,有可能指向代码段前面的区域和系统代码段(这些是属于不可读写区间)。例如当a=0x12345时,实际上是对a值所指向内容写入,这其指向的内容有可能是不可访问的,所以会出错。...原创 2019-09-06 08:45:57 · 214 阅读 · 0 评论 -
数组与指针的区别
文章目录变量性质不一样内存位置不一样sizeof() 值不一样数组与指针存储常量字符串的不同变量性质不一样数组是一个整体,包含三大要素:数组类型;元素个数;数组数据;指针是变量,只有数据类型和数据(存储的地址);内存位置不一样数组名对应于一块内存,内存要么在静态存储区(全局),要么在栈上;在其生命周期内,位置和容量不变,存储的数据可变;指针存储的是一个地址,这个...原创 2019-09-05 08:23:20 · 166 阅读 · 0 评论 -
(常量/数组/函数)指针与指针(常量/数组/函数)
文章目录XXX指针与指针XXX常量指针和指针常量常量指针的测试数组指针与指针数组函数指针与指针函数XXX指针与指针XXX在工作中,我们总是搞混XXX指针 与 指针XXX 的含义,常见的组合有:常量指针与指针常量;数组指针与指针数组;函数指针与指针函数;常量指针和指针常量以下表达式哪个是常量指针和指针常量:const char * p; // 语句1char * cons...原创 2019-09-05 08:06:46 · 830 阅读 · 0 评论 -
gcc 与 g++ 的区别
文章目录gcc 与 g++ 并不相同gcc 与 g++ 的主要区别在:`extern "C"` 与 gcc/g++ 的关系gcc 与 g++ 并不相同gcc 与 g++ 是两个不同的东西:GCC:GNU Compiler Collection(GNU编译器集合),它可以编译C,C++,JAV,Pascal,Object-C,Ada等;gcc 是 GCC 中 GNU C Compiler...原创 2019-09-02 20:06:08 · 262 阅读 · 0 评论 -
C 语言中的一些技巧
文章目录指定初始化利用预处理进行编译断言宏列表指定初始化除了我们常用的静态初始化数组:int fibs[] = {1, 1, 2, 3, 5};C99 标准支持一种更为直观的方式来初始化:结构体、联合体、数组;初始化数组当我们需要根据一组 #define 来保持某种映射关系的同步更新时,我们可以如此初始化数组:// 一组错误码的定义#define EINVAL 1#def...原创 2019-08-26 20:51:06 · 158 阅读 · 0 评论 -
面试题--代码查错
文章目录`gets()` 函数`strcpy()` 函数`main()` 的返回类型内存泄露`free()` 函数问题使用 `_exit()` 退出问题`void *` 和 C 结构体`*` 和 `++` 操作修改只读数据改变自己名字的进程返回本地变量的地址处理printf()的参数gets() 函数题目:请找出下面代码的问题:#include<stdio.h> int ...原创 2019-08-26 19:29:22 · 359 阅读 · 0 评论 -
C 中内存分配函数
文章目录C 语言的内存分配方式C 语言中与内存申请相关的函数C 语言的内存分配方式从静态存储区分配:内存在程序编译期间分配;这块内存在程序这个运行期间都存在。例如:全局变量、static 变量;从栈上分配:内存在编译期间分配;例如函数内的局部变量,函数执行结束,内存自动释放;栈内容效率高,容量有限;从堆上分配(或称之为动态内存分配):在运行期间分配,需要手动申请(使用 malloc 或...原创 2019-08-26 19:28:02 · 360 阅读 · 0 评论 -
结构体对齐机制
文章目录结构体的对齐机制嵌套结构体的内存结构体内存分配方式与元素顺序有关设置结构体对齐单位结构体的对齐机制一个结构体所占内存的大小并不是结构体内元素所占内存之和。结构体内的元素具有对齐机制。按照对齐单位进行对齐,对齐单位取结构体元素中最大内存。例如:typedef struct T { char c; // 1 __int64 d; // 8 int e; //...原创 2019-09-06 10:41:01 · 316 阅读 · 0 评论