3.10输入、输出变量

【注:本程序验证是使用vs2013版】

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable:4996)


void fun(char *p){//p这里是输入
    strcpy(p, "abcd");
}

void fun2(char *p){
    if (p == NULL){        return;        }
    strcpy(p, "ef");
}

void fun3(char **p, int *len){//p这里是输出
    if (p == NULL){        return;        }
    char *temp = (char *)malloc(100);
    if (temp == NULL){        return;        }
    strcpy(temp, "asdf");
    *p = temp;    //间接赋值
    *len = strlen(temp);
}

int main(void){
/*
    输入:主调函数分配内存
    输出:被调函数分配内存
*/

    char a[100] = { 0 };//这里是输入
    fun(&a);
    printf("a = %s\n", a);
  
char *b = NULL; fun2(b); //不能给空,或者未知区域的东西赋值 printf("b = %s\n", b);
  
char *c = NULL; int len = 0; fun3(&c, &len); //这里是输出 if (c != NULL){ printf("c = %s, len = %d", c, len);
     } printf(
"\n"); system("pause"); return 0; }

 

posted @ 2019-07-01 06:58  大黄蜂_001  阅读(222)  评论(0编辑  收藏  举报