摘要:
对内存的释放是不是清零?在vc、vs的情况下都是c这种的吗?那为什么多次释放同一块内存会报错呢,而且是程序崩溃,想不通,不就是清个零嘛 解决方案 不是清零,而是将这块内存标记为未使用,之所以不清零,是出于性能的考虑。计算机上到处有类似的设计,比如说,你删除一个文件,并不是真的将删除的文件填充0,而也 阅读全文
摘要:
《c和指针》还有对其他博客的参考 数组很常见,int b[4]中 b[4]是整形,b类型是什么呢? 正常思考方式,b应该是表示整个数组,但是我们使用数组名字b的过程中,几乎所有都是一个指针常量,就是数组第一个元素的地址,即&b[0] 但不要以此以为数组和指针是相同的。 只有在两种场合下,数组名不用指 阅读全文
摘要:
指针指向一个地址用*作为解引用运算符进行解引用 声明可以是 int *pi; char *pc; float * pf, *pg; 指针输出有专门的%p 输出为十六进制,虽然%x也是十六进制,但两者是不同的,指针输出用%p 指针的值是它指向对象的地址,指针加一,指针的值递增它所指向类型的大小 例如 阅读全文
摘要:
gets()函数 因为用gets函数输入数组时,只知道数组开始处,不知道数组有多少个元素,输入字符过长,会导致缓冲区溢出,多余字符可能占用未使用的内存,也可能擦掉程序中的其他数据,后续用fgets函数代替。 fgets函数 一小段代码举例: (1) fgets函数一次读入10 - 1个字符,如果少于 阅读全文