よくわからない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
、char配列であると想定します