上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 因为sprintf函数没有参数指定缓冲区的大小,这使得溢出的可能性很大,尤其是遇到sprintf( buffer, "%s", a )如果不知道a的串长,就无法指定安全的缓冲区。解决方法:如果要用sprintf处理, 应该提前获取串a的长度len_a,然后动态申请len_a + 1大小的内存。 这样... 阅读全文
posted @ 2015-12-01 09:38 心中的阿哲 阅读(1814) 评论(0) 推荐(0) 编辑
摘要: 辗转求余法: gcd( M, N ) = if M % N == 0 return N else M % N = R, R > 0 return gcd( M, N ) 阅读全文
posted @ 2015-10-26 12:00 心中的阿哲 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 公式: a¡+1 = ( a¡ + n / a¡) / 2介绍: ai : 上一个精度的数 a¡+1 : 下一个精度的数 n : 待计算的数注释: 这个方法可以获得越来越精确的数值 阅读全文
posted @ 2015-10-10 23:05 心中的阿哲 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 问题描述 我想写个能够排序多种类型的函数. 当我着手排序字符串时, 发现直接把strcmp传递给qsort后, 无法正常排序。解决方法 我注意到strcmp的参数与快排第4个参数的形参并不一致。 我便自己写了个比较函数, 问题solved!附上 1 /* 2 ** 比较两个字符串 3 ... 阅读全文
posted @ 2015-10-08 22:35 心中的阿哲 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 在编写代码时,如果写太多行,很多我平时觉得显而易见的问题变得非常不明显。 比如, 经常把关系符号 == 写成 赋值符 =。 结果调试多遍还以为是编译器坏了。这是我曾写的1 else if( sscanf( buffer, "修改 %d 更改 %s %s %1s", &record_numbe... 阅读全文
posted @ 2015-09-24 11:09 心中的阿哲 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1.公式: 位数 = (int)lg10(A) + 1。2. 推导: A 代表某个整数. 这里只考虑正整数(负整数规律一样)。 10^(x-1) = x - 1 lg10(A) + 1 >= x (int)lg10(A)+ 1 = x; A的位数便求出来了! 阅读全文
posted @ 2015-09-13 21:45 心中的阿哲 阅读(1390) 评论(0) 推荐(0) 编辑
摘要: 我刚才写了个程序, 需要操作两个文件。 我用fgets获取标准输入流stdin中的文件名, 然后用fopen打开。 结果编译器总是抱错。 调试了一下,发现fopen返回的是NULL。我在此处加了个ferror, 系统提示 无效的参数。 我首先排出了第二个参数,那就是第一个参数出现了问题。 我检查... 阅读全文
posted @ 2015-08-29 18:52 心中的阿哲 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 需要用到反斜杠,我习惯地写成'\', 结果编译器总是给我一些不好的反馈。。。 查了查资料, 反斜杠应该是'\\'。 为什么? 因为单个的它是转义符, 它腐蚀掉后面的', 造成编译的ERROR。 顺便补充以下转义字符.转义字符意义ASCII码值(十进制)\a响铃(BEL)007\b退格(BS... 阅读全文
posted @ 2015-07-27 22:05 心中的阿哲 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 在学习函数指针, 我遇到了问题, 我定义一个指针指向负责打印参数的函数, 1 void (*p)( int ) = Fun;好奇该指针存放的是什么(原以为是函数的入口地址),便调试观察一下他们的内存, Fun的值是函数入口地址 0x00401030 Fun(int), 而p的值是函数指针存放... 阅读全文
posted @ 2015-07-23 18:51 心中的阿哲 阅读(829) 评论(0) 推荐(0) 编辑
摘要: 栈内存初始值0xcccccccc和-858993460。 二者是一样的, 一个是16进制, 另一个是10进制 阅读全文
posted @ 2015-07-19 19:48 心中的阿哲 阅读(194) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页