#include <iostream>
#include <cstring>
using namespace std;
const char** stara(const char* str)
{
const char* p = str;
int n = 0;
while (*p)
{
++n;
p += (strlen(p) + 1);
}
const char* *arr = new const char*[n+1];
p = str;
n = 0;
while (*p)
{
arr[n++] = p;
p += (strlen(p) + 1);
}
arr[n] = NULL;
return arr;
}
int main()
{
const char* *arr = stara("I\0had\0a\0little\0lamb\0");
const char **p = arr;
while (*p)
{
std::cout << *p << std::endl;
++p;
}
// arr[0] = "I"
// arr[1] = "had"
// arr[2] = "a "
// arr[3] = "little"
// arr[4] = "lamb"
delete[] arr;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4gCiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGNoYXIqKiBzdGFyYShjb25zdCBjaGFyKiBzdHIpCnsKICAgIGNvbnN0IGNoYXIqIHAgPSBzdHI7CiAgICBpbnQgbiA9IDA7CiAgICB3aGlsZSAoKnApCiAgICB7CiAgICAgICAgKytuOwogICAgICAgIHAgKz0gKHN0cmxlbihwKSArIDEpOwogICAgfQoKICAgIGNvbnN0IGNoYXIqICphcnIgPSBuZXcgY29uc3QgY2hhcipbbisxXTsKCiAgICBwID0gc3RyOwogICAgbiA9IDA7CiAgICB3aGlsZSAoKnApCiAgICB7CiAgICAgICAgYXJyW24rK10gPSBwOwogICAgICAgIHAgKz0gKHN0cmxlbihwKSArIDEpOwogICAgfQoKICAgIGFycltuXSA9IE5VTEw7CgogICAgcmV0dXJuIGFycjsKfQoKaW50IG1haW4oKQp7CiAgICBjb25zdCBjaGFyKiAqYXJyID0gc3RhcmEoIklcMGhhZFwwYVwwbGl0dGxlXDBsYW1iXDAiKTsKCiAgICBjb25zdCBjaGFyICoqcCA9IGFycjsKICAgIHdoaWxlICgqcCkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgKnAgPDwgc3RkOjplbmRsOwogICAgICAgICsrcDsKICAgIH0KCiAgICAvLyBhcnJbMF0gPSAiSSIKICAgIC8vIGFyclsxXSA9ICJoYWQiCiAgICAvLyBhcnJbMl0gPSAiYSAiCiAgICAvLyBhcnJbM10gPSAibGl0dGxlIgogICAgLy8gYXJyWzRdID0gImxhbWIiCgogICAgZGVsZXRlW10gYXJyOwoKCXJldHVybiAwOwp9