读书人

c语言函数体里改变指针内容.解决方案

发布时间: 2012-06-07 15:05:14 作者: rapoo

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;} 

读书人网 >C语言

热点推荐