#include <iostream>
// This is the correct declaration of the parameter
int my_strlen(const char *s)
{
// Which requires const char* here:
const char *p = s;
// 7_const.cpp: In function `int my_strlen(const char*)':
// 7_const.cpp:8: assignment of read-only location
while ( ! (*p = 0) ) ++p;
return p - s;
}
int main()
{
char t[] = "Hello";
std::cout << my_strlen(t) << std::endl; // t converted to const char *
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKLy8gVGhpcyBpcyB0aGUgY29ycmVjdCBkZWNsYXJhdGlvbiBvZiB0aGUgcGFyYW1ldGVyCmludCBteV9zdHJsZW4oY29uc3QgY2hhciAqcykKewogICAgLy8gV2hpY2ggcmVxdWlyZXMgY29uc3QgY2hhciogaGVyZToKICAgIGNvbnN0IGNoYXIgKnAgPSBzOwoKICAgIC8vIDdfY29uc3QuY3BwOiBJbiBmdW5jdGlvbiBgaW50IG15X3N0cmxlbihjb25zdCBjaGFyKiknOgogICAgLy8gN19jb25zdC5jcHA6ODogYXNzaWdubWVudCBvZiByZWFkLW9ubHkgbG9jYXRpb24KICAgIHdoaWxlICggISAoKnAgPSAwKSApICsrcDsKICAgIHJldHVybiBwIC0gczsKfQoKaW50IG1haW4oKQp7CiAgICBjaGFyIHRbXSA9ICJIZWxsbyI7CiAgICBzdGQ6OmNvdXQgPDwgbXlfc3RybGVuKHQpIDw8IHN0ZDo6ZW5kbDsgIC8vIHQgY29udmVydGVkIHRvIGNvbnN0IGNoYXIgKgogICAgcmV0dXJuIDA7Cn0=