美文网首页
指针的输入输出问题

指针的输入输出问题

作者: 带着白卡去旅行 | 来源:发表于2018-09-06 13:02 被阅读4次

    一级指针通过二级指针进行赋值修改 输出
    指针释放内存空间问题
    1、注意 :被调用函数中的形参不要随意改动。
    2、demo搭建的顺序问题
    【根据mytmp(char*p1,int len1,charp2,int *len2)调用函数的参数类型】

    no.1 主函数中进行相应的创建
    eg:charp1------charp1=null;
    int len1--------------int len1;
    no.2 调用:
    主函数中的mytmp(&p1,&len1,&p2,&len2);无需管
    /
    *指针

    被调用函数中的搭建
    不用管p1,在使用时还是按照定义 char tmp1来使用,最后通过
    p1=tmp1;进行修改【实现一个二级指针
    p1对主函数中一级指针
    p1进行了修改】

    mytmp(char**p1,int *len1,char**p2,int *len2)
    char*tmp=null;
    tmp1=(char*)malloc(100);//在堆区建立内存空间
     strcpy(tmp1, "adsfdsf");
    *p1 = tmp1;//通过tmp1进行赋值
    

    demo

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdlib.h>
    #include<stdio.h>
    #include<string.h>
    
    int mytmp(char**p1,int *len1,char**p2,int *len2)
    {
        char* tmp1 = NULL;//因为形参不呢个随意改变 所以定义一个char*tmp1 代替char**p1;
        tmp1 = (char*)malloc(100);
        strcpy(tmp1, "adsfdsf");
        if (tmp1==NULL)
        {
            return -1;
    
        }
    
        *p1 = tmp1;
        *len1 = strlen(tmp1);
    
        char* tmp2 = NULL;
        tmp2 = (char*)malloc(100);
        strcpy(tmp2, "12123243");
    
        if (tmp2 == NULL)
    {
            return -2;
    }
        *p2 = tmp2;
        *len2 = strlen(tmp2);
    
        return 0;
    }
    
    //指针释放 重点
    void myrelease(char*p)
    {
        if (p==NULL)
        {
            return;
        }
        free(*p);//时放实参指针变量所指向的内存空间。
        *p = NULL;//把实参修改为null
        return;
    }
    
    
    
    int main()
    {
        char *p1 = NULL;//用二级指针修改一级指针
        int len1 = 0;
    
        char*p2 = NULL;
        int len2 = 0;
    
        int ret = 0;
        ret = mytmp(&p1,&len1,&p2,&len2);
    
        printf("p1:%s\n",p1);
        printf("len1:%d\n", len1);
        printf("p2:%s\n", p2);
        printf("len2:%d\n", len2);
        myrelease(&p1);
        myrelease(&p2);
    
    printf("hello...\n");
    system("pause");
    return;
    }
    

    相关文章

      网友评论

          本文标题:指针的输入输出问题

          本文链接:https://www.haomeiwen.com/subject/bbfxgftx.html