I am writing a program that reads a value from an .ini file, then passes the value into a function that accepts a PCSTR (i.e. const char *). The function is getaddrinfo()
.
So, I want to write PCSTR ReadFromIni()
. To return a constant string, I plan on allocating memory using malloc()
and casting the memory to a constant string. I will be able to get the exact number of characters that were read from the .ini file.
Is that technique okay? I don't really know what else to do.
The following example runs fine in Visual Studio 2013, and prints out "hello" as desired.
const char * m()
{
char * c = (char *)malloc(6 * sizeof(char));
c = "hello";
return (const char *)c;
}
int main(int argc, char * argv[])
{
const char * d = m();
std::cout << d; // use PCSTR
}