发布时间:2013-01-09 15:42:35
free野指针会出现segment error! 野指针解释:(来自百度百科) 野指针的成因主要有三种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。 二、指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。 别看free和delete的名字(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。通常会用语句if (p != NU......【阅读全文】
发布时间:2013-01-09 12:13:19
昨晚上随便尝试写了下一个简单的reverse函数,就是颠倒字符的顺序,结果出现问题.研究了半天,大致是关于char* 和char[]初始化的.char* str1 = "abcd";char str2[] = "abcd";void reverse(char * input, int len){ ...}在调用reverse函数时. 从形式上 reverse(str1,5) 和reverse(str2, 5)都没有错误,传入的参数都是char数组的头指针,但是实际操作时,不能采取str1的初始化形式.char* str1 ="abcd"含义是先新建一个字符串,内容是abcd 然后str1是一个......【阅读全文】
发布时间:2013-01-09 12:11:03
自己实现一个memcpy的函数。 需要考虑的地方在src和dest重叠的情况。 gcc编译有warning,运行通过。 点击(此处)折叠或打开 #include <stdio.h> #include <stdlib.h> void* mymemcpy(const void* src, void* dest, int size){ if(src == NULL || dest==NULL) return NULL; &nb......【阅读全文】