返回的值会更改原始传递的值

时间:2018-02-17 05:54:46

标签: c++ shared-libraries parameter-passing

所以我正在编写一个main函数,它将两个char值逐个传递给五个不同的char *函数,但是当我返回它的值时,它会完全改变我的值;我该如何解决这个问题?

例如:

将char one传递给我的函数myStrCat,返回世界!因为那是我的函数所做的(顺便说一句,赋值是如何在没有任何库导入的情况下编写特定库函数的代码)。但它不仅会返回它,而且会改变它。因此,当我将一个函数传递给下一个函数时,它将返回错误的值,因为一个(Hello)没有被传递,而是两个(World!)是。

char one[size] = "Hello ";
char two[size] = "World!";
cout << "strlen: " << myStrLen(one) << endl;
cout << "strcat: " << myStrCat(one, two) << endl;

Word函数正在传递到

char* myStrCat(char inputOne[], char inputTwo[]){
    int sizeOne = myStrLen(inputOne);
    int sizeTwo = myStrLen(inputTwo);
    for(int i = 0; i < sizeTwo; i++){
        inputOne[i + sizeOne] = inputTwo[i];
    } 

    return inputOne;
}

0 个答案:

没有答案