zoukankan      html  css  js  c++  java
  • 一个教科书一般的“空指针”错误

    #include <stdio.h>
    #include <afx.h>
    /*void my_strcpy(char *s,char *t)
    {
    	int i = 0;
    	while ((s[i] = t[i]) != '\0')
    		i++;
    }
    */
    void my_strcpy(char *s,char *t)
    {
    	ASSERT ((s!=NULL)&&(t!=NULL));
    	while ((*s = *t) != '\0')
    	{
    		s++;
    		t++;
    	}
    }
    
    int main()
    {
    	char *raw = "abcd";
    	char *dest = NULL;
    	printf("%s\n",raw);
    	my_strcpy(dest,raw);
    	printf("%s\n",dest);
    	return 0;
    }

    指针,理论懂了,但是,用的时候一不小心就会犯错,这不,今儿我又来一出,记到这里,警示自己

    正确的应该如下:

    #include <stdio.h>
    #include <afx.h>
    /*void my_strcpy(char *s,char *t)
    {
    	int i = 0;
    	while ((s[i] = t[i]) != '\0')
    		i++;
    }
    */
    void my_strcpy(char *s,char *t)
    {
    	ASSERT ((s!=NULL)&&(t!=NULL));//使用断言进行入口检查
    	while ((*s = *t) != '\0')
    	{
    		s++;
    		t++;
    	}
    }
    
    int main()
    {
    	char *raw = "abcd";
    	char *dest = NULL;
    	dest = (char *)malloc(4);//指针声明以后,一定要指向有意义的内存,才能使用,否则就是空指针。
    	printf("%s\n",raw);
    	my_strcpy(dest,raw);
    	printf("%s\n",dest);
    	return 0;
    }



  • 相关阅读:
    互联网原理
    正则表达式
    BOM对象
    事件
    DOM对象
    已有项目安装脚手架工具vite
    小程序订阅消息 多个模板id
    百度地图 InfoWindow上添加点击事件
    颜色渐变 Echarts 环形图
    js替换字符串中所有斜杠
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742720.html
Copyright © 2011-2022 走看看