编程中经常错的地方(如果你的程序报错,却找不到,来这里看看)
2012-07-28 17:36
323 查看
1, struct 结构体和union联合体,一定要加‘;’
例:
,2, 如果使用if和while时,注意:
上面两个语法没问题,但逻辑有问题,if 和while使用时,不要习惯性地加‘;’
注意区分‘=’赋值和‘==’横等的区别
3,有时候可能会出现莫名其秒的段错误,这也是很头疼的;
可能性1:越界:你定义了一个变量char a[10],只有10个字节,如果你给他赋值10个字节以上的内容,系统就会报段错误
可能性2:野指针:你的指针没有初始化,也没明确指向一段内存,那系统会给他一个随机的地址。一旦你使用他,系统就会报错
因为这段地址可能是系统不允许访问的地址
可能性3:链表中:定义一个结构体指针,没有分配空间,那他还是个地址,
例:
4,注意while()和for(; ;)里面的控制是,满足条件才循环
不要带自己感觉地去写,认为满足条件退出
5,变量在定义时,注意初始化。全局变量,还好,系统会默认为0或NULL。若是局部变量时,不给他赋值,系统自动给一个垃圾值。
6,调用函数时,不要返回局部变量的地址,因为局部变量的资源,在函数调用后,就会释放,所以得不到你想要的结果。
例:
上可以程序,如果你编译,就会出现警告。如果你用一个char *temp;接收返回值,并打印*temp指向的内存,那你得到的将不会是“hello!”
7,文件读写 :文件读写时,*fp会移动,所以要明白指针目前指向
例:
struct node{ int num };
,2, 如果使用if和while时,注意:
if(a=4); { printf("大家好\n"); } while(a=4); { printf("大家好\n"); }
上面两个语法没问题,但逻辑有问题,if 和while使用时,不要习惯性地加‘;’
注意区分‘=’赋值和‘==’横等的区别
3,有时候可能会出现莫名其秒的段错误,这也是很头疼的;
可能性1:越界:你定义了一个变量char a[10],只有10个字节,如果你给他赋值10个字节以上的内容,系统就会报段错误
可能性2:野指针:你的指针没有初始化,也没明确指向一段内存,那系统会给他一个随机的地址。一旦你使用他,系统就会报错
因为这段地址可能是系统不允许访问的地址
可能性3:链表中:定义一个结构体指针,没有分配空间,那他还是个地址,
例:
struct node *p=NULL; x = p->num ; //这里就会报错,因为你没分配空间,*p只是一个结构体指针,是个地址,没有内存空间
4,注意while()和for(; ;)里面的控制是,满足条件才循环
n =7 ; for(int i=0;i>10;i++) while(n<0) { { n--; } }
不要带自己感觉地去写,认为满足条件退出
5,变量在定义时,注意初始化。全局变量,还好,系统会默认为0或NULL。若是局部变量时,不给他赋值,系统自动给一个垃圾值。
6,调用函数时,不要返回局部变量的地址,因为局部变量的资源,在函数调用后,就会释放,所以得不到你想要的结果。
例:
char * reserver_string() { char str[] = "hello!"; return str; } int main() { reserver_string(); return 0; }
上可以程序,如果你编译,就会出现警告。如果你用一个char *temp;接收返回值,并打印*temp指向的内存,那你得到的将不会是“hello!”
7,文件读写 :文件读写时,*fp会移动,所以要明白指针目前指向
相关文章推荐
- 在MyEclipse中写Jsp时,老是会有这种情况,正写着代码,突然光标跳到别的地方了,经常导致输入错误,直接导致程序错误 解决方法
- 第五题:下面的程序有问题吗?如果有,请指出可能出错的地方,以及如何修改
- 如何从电脑中强力卸载软件,如果响应的文件上了,并且当时安装程序也找不到了。
- 写程序10大习惯和如何提高编程能力(不知道被转了几百次了找不到原出处了) 【转载】_beyond yourself--思路决定出路
- 颜色判断,目标程序中经常变动的2个点颜色,如果在一定的时间内没有变化,说明程序卡死
- 黑莓编程在模拟器里找不到程序的解决
- 如果我希望程序一开始就设置SetTimer,那我应该把它放在什么地方?
- 【程序9】 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如6=1+2+3.编程找出1000以内的所有完数。
- 一个班有n个学生,需要把每个学生的简单资料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后程序就查找该班有无此学生,如果有,则输出他的姓名和学号,如果找不到
- 程序报错找不到原因高手进来看看
- 在程序中经常容易出错的地方
- 【Java】如果运行时依赖类找不到,程序还能不能运行?
- 想弄一个手机播放器找不到视频源?来这里看看
- 程序开发中经常用到的一些编程思想!
- 大家帮我看看我在弄spring得aop编程一直出现错误找不到
- iOS之推送通知-本地-服务器3.服务器端实现: 如果要编写内容提供者的推送服务程序,需要进行SSL认证编程,以及构建APNS数据包,数据包分为3个主要部分:Command(命令)、deviceTo
- 写程序10大习惯和如何提高编程能力(不知道被转了几百次了找不到原出处了)
- 在Linux系统下,如果程序中出现segment fault,如何可以让系统产生core dump文件?如何用gdb来跟踪出错的地方?
- 自己学习编程时间比较短,现在把一下自己以前刚刚接触C++时的程序上传一下,有空可以看看
- UNIX环境高级编程第二版中编译程序提示“apue.h:找不到这个文件或目录”错误