我正在尝试从函数参数返回数据指针:
bool dosomething(char *data){
    int datasize = 100;
    data = (char *)malloc(datasize);
    // here data address = 10968998
    return 1;
}
但是当我按以下方式调用函数时,数据地址变为零:
char *data = NULL;
if(dosomething(data)){
    // here data address = 0 ! (should be 10968998)
}
我究竟做错了什么?
Eri*_*rik 25
你正在经历价值.dosomething修改其本地副本data- 调用者永远不会看到它.
用这个:
bool dosomething(char **data){
    int datasize = 100;
    *data = (char *)malloc(datasize);
    return 1;
}
char *data = NULL;
if(dosomething(&data)){
}