zxcoder
  • 函数传参方式是值传递
    形参其实也是个局部变量,出了函数就没了,所以怎么赋值怎么修改都没用。
#include <bits/stdc++.h>
using namespace std;
void A(char *p){
    p=(char*)malloc(100);
}
int main(){
    char* str=NULL;
    printf("%x\n",str);
    //str仍然是空指针,函数不能改变形参。
    A(str);
    printf("%x\n",str);
    return 0;
}
  • 换成二级指针
    传递一个二级指针,二级指针指向一个一级指针,所以可以修改。
#include <bits/stdc++.h>
using namespace std;
void A(char **p){
    *p=(char*)malloc(100);
}
int main(){
    char* str=NULL;
    printf("%x\n",str);
    A(&str);
    printf("%x\n",str);
    return 0;
}

分类:

技术点:

相关文章:

  • 2018-06-19
  • 2021-05-30
  • 2021-12-09
  • 2019-02-12
  • 2021-07-31
  • 2021-04-22
  • 2021-12-25
  • 2021-04-10
猜你喜欢
  • 2021-05-23
  • 2021-12-15
  • 2021-06-02
  • 2021-12-15
  • 2021-12-05
  • 2021-04-19
  • 2021-10-17
  • 2021-05-18
相关资源
相似解决方案