我無法讓它作業。我構建了一個字串并且無法回傳它,我嘗試使用指標進行調整,但它也不起作用。代碼中的詳細資訊:
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char str[strlen(sSource) 1];
\\filling str and putting '\0' at the end......
return str; // At this point str = "abgde3" TRYING TO PRINT STR INSIDE THE FUNCTION WORKS !
}
int main()
{
printf("%s", replace("A39a933Ab",93,314));
return 0;
}
uj5u.com熱心網友回復:
你必須回傳指標,而不是陣列。像這兒:
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char str[strlen(sSource) 1];
return &str; //Added & to get pointer to variable
}
另外,你不應該回傳指向本地變數的指標,所以為一個分配記憶體,然后回傳它。
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char * str = (char *)malloc(strlen(sSource) 1);
return str;
}
您必須通過以下方式清理分配的記憶體free(pointerToArray)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419684.html
標籤:
上一篇:遍歷指標陣列C
