c语言基础
有点is
这个作者很懒,什么都没留下…
展开
-
gdb调试段错误
有时候在Linux下写程序,如果不仔细,程序编译能通过,运行会出现段错误,而且还没有提示,就像这种 : 你根本不知道段错误在哪,也无从排查,这里给大家介绍我最近刚学到的一种方法:gdb调试,我们需要加上"-g -rdynamic"的参数进行编译,然后用gdb调试运行这个新编译的程序,具体步骤如下: 哦?好像不用一步步调试就找到了错误的位置,程序运行到87行出现的段错误:原创 2017-11-28 22:10:36 · 534 阅读 · 0 评论 -
指针未指向合法的内存
指针未指向合法的内存,即定义了指针变量,却没有为指针分配内存。 刚开始学的时候,老师给我们的课件上出现过这么一个例子: 这里面定义了结构体类型stu,结构体成员里的字符串name,只是定义了一个指针变量,并没有给它分配内存,编译的时候不会出错,但运行时就会出现段错误,解决办法:可以将指针name定义成字符串数组name[20];原创 2017-11-15 21:58:49 · 652 阅读 · 0 评论 -
c语言分配内存方式以及常见内存错误
三种内存分配方式: 1:从静态存储区分配:全局变量,static变量 2:从栈分配:局部变量,函数参数 3:从堆分配(动态内存分配):使用malloc或者new操作符(c++) 常见的内存错误: 1:内存分配未成功 使用p==NULL来判断是否为空可以避免这个问题或者使用异常处理语句来处理错误 分配未成功可能是堆内存不够用(内存肯定原创 2018-01-24 10:02:18 · 924 阅读 · 0 评论 -
注释与嵌套注释
大家在写程序的时候是不是经常都会注释呢,反正我是有这么一个习惯,因为哪怕是自己写的程序,过个两三天自己看都得花一番功夫,所以注释是一个好习惯。 我们注释一般都是用 /*这是一个注释*/ 这种方法,而我在写通讯录的时候发现一个问题,就是如果想注释掉一段包含有其它注释的的代码,并不能达到自己的目的,如下图: 我在74行和97行添加的注释,但是真正注释掉的只有75行和76行,为什么呢原创 2017-11-23 21:32:34 · 5351 阅读 · 1 评论 -
字符串转换成实数的方法
今天遇到一个题目: 输入五个数(含负数、小数),将它们按有小到大的顺序排列起来 提示:需要排列的数字通过参数传递进来, 例如:输入:./a.out -1 2.1 -3 5 7 输出:-3 -1 2.1 5 7 这里就用到了atof函数,目的是将命令行输入的数字字符串转化成浮点型数字,然后再进行简单排序。 1、原原创 2018-01-27 19:58:20 · 7401 阅读 · 0 评论 -
判断系统的字节序(大小端模式)
不同类型的CPU对大于一个字节的变量的字节存储顺序可能不同: 有的系统是高位在前,低位在后; 而有的系统是低位在前,高位在后; 而网络传输的数据顺序是一定要统一的。所以当内部字节存储顺序和网络字节顺序不同时,就一定要进行转换。 如:32bit的整数(0x01234567)从地址0x100开始: v小端字节序: v大端字节序:原创 2018-01-27 20:09:39 · 815 阅读 · 0 评论