小编Nic*_*ick的帖子

在C中传递和修改char指针之间的混淆(引用与值)

我想知道你是否可以帮我解决C字符串问题,我不太明白.我有一个函数,我发送3个char指针.在此函数中,char指针被正确移位和修改.但是,当我返回到调用它们的main函数时,所述函数不会改变.我的价值是错误吗?这是我的代码示例:

int main(void) 
{ 
    LPSTR path = (char*)malloc(strlen(START_PATH));

    strcpy( path, START_PATH );

    char* newstr = (char*)malloc(PATH_SIZE);

    TrimVal(path, "*.*", newstr);

    //Do Stuff

    return 0;
}

void TrimVal(char* modify, char* string, char* newstr)
{ 
      newstr[0] = '\0';

      modify = strncat(newstr, modify, (strlen(modify) - strlen(string)));

      return;
}      
Run Code Online (Sandbox Code Playgroud)

注意:假设PATH_SIZE是一个大小值,并且START_PATH是一个char数组

c string pointers pass-by-reference

2
推荐指数
1
解决办法
4406
查看次数

标签 统计

c ×1

pass-by-reference ×1

pointers ×1

string ×1