#include <iostream>
#include <cstring>
void display(char *s)
{
std::cout << "Display" << std::endl;
}
void display(const char *s)
{
std::cout << "Display with const" << std::endl;
}
int main()
{
char *str = strdup("boap");
const char *str2 = "toto";
/* It is a string literral "bound" as a char *.
Compiler will issue warning, but it still compiles.
Avoid to do that, it's just an exemple */
char *not_safe = "not_safe";
display("llama");
display(str2);
display(str);
display(not_safe);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnZvaWQgICAgZGlzcGxheShjaGFyICpzKQp7CiAgc3RkOjpjb3V0IDw8ICJEaXNwbGF5IiA8PCBzdGQ6OmVuZGw7Cn0KCnZvaWQgICAgZGlzcGxheShjb25zdCBjaGFyICpzKQp7CiAgc3RkOjpjb3V0IDw8ICJEaXNwbGF5IHdpdGggY29uc3QiIDw8IHN0ZDo6ZW5kbDsKfQoKaW50ICAgICBtYWluKCkKewogIGNoYXIgICpzdHIgPSBzdHJkdXAoImJvYXAiKTsKICBjb25zdCBjaGFyICpzdHIyID0gInRvdG8iOwogIC8qIEl0IGlzIGEgc3RyaW5nIGxpdGVycmFsICJib3VuZCIgYXMgYSBjaGFyICouICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgIENvbXBpbGVyIHdpbGwgaXNzdWUgd2FybmluZywgYnV0IGl0IHN0aWxsIGNvbXBpbGVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgIEF2b2lkIHRvIGRvIHRoYXQsIGl0J3MganVzdCBhbiBleGVtcGxlICovCiAgY2hhciAgKm5vdF9zYWZlID0gIm5vdF9zYWZlIjsKCiAgZGlzcGxheSgibGxhbWEiKTsKICBkaXNwbGF5KHN0cjIpOwogIGRpc3BsYXkoc3RyKTsKICBkaXNwbGF5KG5vdF9zYWZlKTsKfQ==