C陷阱与缺陷部分源码
n0th1n9
这个作者很懒,什么都没留下…
展开
-
非对称二分搜索
非对称二分搜索算法实现,具体好处见《C陷阱与缺陷》 P132 练习3-3代码如下:#include <stdio.h>int * bsearch(int *a, int n, int key){ int *left = a, *right = a + n; while(left < right) { int * mid = left +...转载 2018-06-11 11:24:33 · 271 阅读 · 0 评论 -
读取内存地址0的内容
#include <stdio.h>int main(){ char *p; p = NULL; printf("Location 0 contians %d\n", *p); return 0;}运行结果:在我的笔记本上,可以成功运行。输出为空,一般内存地址0不放任何内容。在学院楼台式机,产生错误,说明该电脑禁止读取内存地址0。...转载 2018-06-15 10:32:33 · 1753 阅读 · 2 评论 -
atol函数实现
#include <stdio.h>long atol(char *s){ long r = 0; int neg = 0; switch(*s) { case '-': neg = 1; /* 这里没有break */ case '+': s++...转载 2018-06-15 10:47:57 · 2479 阅读 · 0 评论 -
C语言中的溢出(数组越界)
在C陷阱与缺陷中有一样例如下:#include <stdio.h>int main(){ int i, a[10]; for(i = 1; i <= 10; ++i) a[i] = 0; return 0;}由于数组a只有10个元素,它们分在在a[0], a[1], ... , a[9], 该程序非法使用了a[10], 结果导致的是该...原创 2018-06-17 21:56:57 · 9990 阅读 · 0 评论