首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-06-07 
c语言,函数体里改变指针内容...有一个问题 我不明白比如:void fun1(char *str){比如strrealloc(100)我怎

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

热点排行