c++ cpp函数应该如何返回“-1”作为char*?

mlmc2os5  于 2022-12-20  发布在  其他
关注(0)|答案(3)|浏览(227)

对于一个问题陈述,有一个cpp函数返回char*需要return值作为-1的情况,如何返回负整数值的char*?
示例伪代码,其中函数解密mystring并返回给定index处的字符,如果未找到,则应返回-1

char * decrypt(char *mystring, int index){.........................
//code for decrypt mystring
if (index is valid after decryption)
     return valid value
else 
     return '-1';
}

在上面的代码块中,如何返回与char * 兼容的“-1”

cunj1qz1

cunj1qz11#

如果未找到,则应返回-1:
这是一个糟糕的设计,指针有一种传统的方式来表示一个不指向任何东西的值:空指针。一个更传统的设计是在没有找到结果时返回nullptr
如果使用任意值,如-1,调用方将很难确定未找到结果。
如何返回带负整数值的char*?
示例(但请记住,这是一个糟糕的设计):

std::intptr_t negative = -1;
return reinterpret_cast<char*>(negative);

并返回字符
您的函数与您的描述相矛盾。函数没有返回字符;它返回指针。

vyswwuz2

vyswwuz22#

在C++17中,您可以使用std::optional(https://en.cppreference.com/w/cpp/utility/optional)来适应这种情况(尽管您肯定需要更多的经验)。

w46czmvw

w46czmvw3#

在cpp**return '#'**的字符返回函数中,可以返回'#'以返回-1
第一个月

相关问题