返回字符串我有一个返回字符串的函数:C:从功能
const *char getMyPassword()
{
return "mysecretpassword";
}
那么,它的工作完美,但我发现,如果我将运行在Unix系统上“串”,它在显示出来名单..不好。
什么是最简单的方法来取代它?该函数位于库中,我想保持它的灵活性。我现在在函数中开始mallocing,字符串中的字符串消失了。但是,我什么时候可以再次释放它?
char * getMyPassword()
{
unsigned char arr[] = { 'p', 'a', 's', 's', 'w', 'o', 'r' , 'd', '\0' };
char *return_arr = malloc(sizeof(arr));
strcpy(return_arr, arr);
return return_arr;
}
如果我是之前malloc和传递一个指针,那么我怎么会因为密码大小只在函数内部知道之前知道的大小?
作为一个计划B我可以通过一个巨大的数组,但这似乎不是很优雅。我应该如何处理这个问题?
编辑:我添加了strcpy(return_arr,arr)。我确实在原始代码中使用了它,但在这里忘了它。
把它放在后面,然后用''''''''''''''''''''或者,腐烂13它两次。 –
如果您打算使用密码,我强烈建议使用散列密码而不是文字字符串。这肯定会减少某人通过在程序上运行“字符串”可以获得的信息量。你可以自定义一个散列函数,这样人们不能(或者至少更难)确定实际的值。 – dbeer
密码的用途是什么?某处登录或登录? –