内存管理,结构体

1.如何防止内存分配不成功,却错误的使用内存?

使用前用if(p==NULL)来防错

2.使用free释放内存后,需要将指针置NULL吗

需要,不然会产生野指针

3.出现段错误的原因?

访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,常见的是访问0地址

4.如何快速定位造成段错误的语句?

   利用gcc -g -rdynamic test.c

       gdb ./a.out

run

5.指针与数组的对比

不能对数组名进行直接复制与比较,应用strcpy函数和strcmp函数

6.宏定义的要点

(1)宏定义不是说明或语句

(2)宏定义必须写在函数之外,其作用域为宏定义命令起到程序结束

(3)宏名在源程序中若用引号括起来,则预处理程序不对其进行宏代换

(4)宏定义允许嵌套

(5)对输出格式作宏定义

7.文件包含中尖括号和双引号的区别

使用尖括号表示在包含文件目录中查找,而不在源文件目录中查找

使用双引号表示在当前的源文件目录中查找,若未找到才到包含目录中查找

8.结构体与数组的比较

都由多个元素组成

各个元素在内存中的存储空间是连续的

数组中各个元素的数据类型相同,而结构体中的各个元素的数据类型可以不相同

9.如何定义结构体?

typedef struct student

{

 char name[10];

char sex;

int age;

float score;

}STU;

STU stu1 , *ps,stu[5];

10.define与typedef的区别

typedef只是为了增加可读性而为标识符另起的新名称,而define是为了定义常量


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值