我想知道您是否可以帮助我解决我不太了解的 C 字符串问题。我有一个向其发送 3 个字符指针的函数。在这个函数中,char 指针被正确地移动和修改。但是,当我返回调用它们的主函数时,所述函数并没有改变。我按值传递是错误的吗?这是我的代码示例:
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;
}
注意:假设PATH_SIZE
是一个大小值,并且START_PATH
是一个字符数组