У меня есть функция, которая возвращает строку:
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 раньше и передать указатель, то как я мог бы узнать размер раньше, поскольку размер пароля известен только внутри функции?
Как план BI может передавать огромный массив, но это кажется не очень элегантным. Как мне подойти к этому?
РЕДАКТИРОВАТЬ: Я добавил strcpy (return_arr, arr). У меня действительно было это в исходном коде, но я забыл об этом здесь.