Не нужно мешать C++ с C!
Во первых как можно скорее завязывайте использовать char* для строк.
Используйте для этого std::string. Всегда используйте для этого std::string.
И как .NET программисту вам будет проще использовать std::string, по аналогии с System.String
Во вторых старайтесь использовать библиотеки C++, а не Си
В третьих если уж берётесь за указатели, то инкапсулируйте их внутри классов или не используйте вовсе.
Вот как можно
переписать ваш код на C++#include <iostream>
void securityLib_GetCode(std::string &str, size_t &length) {
const std::string key = "CODE";
str= "CODE";
length = key.size();
}
int main() {
std::string text;
size_t length = 0;
securityLib_GetCode(text, length);
cout << "Code = " << text << endl;
cout << "Code length = " << length << endl;
}
Дело другое что сама логика кода кажется чуточку бессмысленной)
Отдельно скажу про
char *arrPtr = &code[0];
Это просто много лишних символов. Зачем брать адрес первого элемента?
char *arrPtr = code; // Будет взят адрес текущего положения code