未能 return 来自函数的字符串
Failing to return a string from a function
我无法让它工作。我构建了一个字符串,但无法 return 它,我尝试使用指针进行调整,但它也没有用。代码详情:
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char str[strlen(sSource)+1];
\filling str and putting '[=11=]' 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;
}
你必须 return 指针,而不是数组。喜欢这里:
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char str[strlen(sSource)+1];
return &str; //Added & to get pointer to variable
}
另外,你不应该 return 指向局部变量的指针,所以为一个分配内存,然后 return 它。
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char * str = (char *)malloc(strlen(sSource)+1);
return str;
}
您必须通过 free(pointerToArray)
清理分配的内存
我无法让它工作。我构建了一个字符串,但无法 return 它,我尝试使用指针进行调整,但它也没有用。代码详情:
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char str[strlen(sSource)+1];
\filling str and putting '[=11=]' 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;
}
你必须 return 指针,而不是数组。喜欢这里:
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char str[strlen(sSource)+1];
return &str; //Added & to get pointer to variable
}
另外,你不应该 return 指向局部变量的指针,所以为一个分配内存,然后 return 它。
char* replace(const char* sSource, unsigned int nSearch, unsigned int nReplace)
{
char * str = (char *)malloc(strlen(sSource)+1);
return str;
}
您必须通过 free(pointerToArray)