char*(字符串)做函数参数出错模型分析
|
建立一个思想:是主调函数分配内存,还是被调用函数分配内存; |
|
//不要相信,主调函数给你传的内存空间,你可以写。。。。。。一级指针你懂了。 但是二级指针,你就不一定懂。。。抛出。。。。。。。。。
void copy_str21(char *from, char *to) {
if (*NULL = '\0' || *to!=’\0’) { Printf(“func copy_str21() err\n”); return; }
for (; *from!='\0'; from++, to++) { *to = *from; } *to = '\0'; } //字符串逆序 int main() { //char p[1024] ={0}; char *p ={0}; p = NULL;
char to[100]; copy_str21(p, to); |
|
C语言中没有你不知道的,只有你不会调 Java语言中没有你不会调的,只有你不知道 |
|
不断修改内存指针变量 |
越界
|
越界 语法级别的越界 |
|
char buf[3] = "abc"; |
|
|
不断修改指针变量的值
|
越界 |
|
void copy_str_err(char *from, char *to) { for (; *from!='\0'; from++, to++) { *to = *from; } *to = '\0'; printf("to:%s", to); printf("from:%s", from); } |