c语言,函数体里改变指针内容...
有一个问题 我不明白
比如:
void fun1(char *str){
比如 str=realloc(100);
我怎么才能把 这个新的指针传出去?? 或者我能确保 它的指针 永远都是 传进来的那个指针吗?
因为 我这里 想用一个函数 改变两块内容
我返回值里改变一块内容,
然后通过参数传地址改变一块内容
}
main(){
char *str = malloc(10);
fun1(str);
如何让 fun1 改变str 不通过返回值 就可以传出来,, (也不通过全局变量)
}
[解决办法]
- C/C++ code
#include <stdio.h>#include <stdlib.h>#include <string.h>void fun1(char **s){ *s = realloc(*s, 5);}int main(void){ char *p = malloc(3); strcpy(p, "12"); puts(p); fun1(&p); strcpy(p, "1234"); puts(p); free(p); return 0;}