/* Write a function, char* strdup(const char*), that copies a C-style string into memory it
allocates on the free store. Do not use any standard library functions. Do not use subscripting;
use the dereference operator * instead. */
#include <iostream>
#include <string.h>
char* strdup(const char* s) {
int size = {sizeof(s)/sizeof(char)};
char* str_ptr = new char[size];
strcpy(str_ptr, s);
return str_ptr;
}
int main()
{
char* rdy = strdup("ass");
std::cout << rdy << std::endl;
}
LyogV3JpdGUgYSBmdW5jdGlvbiwgY2hhciogc3RyZHVwKGNvbnN0IGNoYXIqKSwgdGhhdCBjb3BpZXMgYSBDLXN0eWxlIHN0cmluZyBpbnRvIG1lbW9yeSBpdAphbGxvY2F0ZXMgb24gdGhlIGZyZWUgc3RvcmUuIERvIG5vdCB1c2UgYW55IHN0YW5kYXJkIGxpYnJhcnkgZnVuY3Rpb25zLiBEbyBub3QgdXNlIHN1YnNjcmlwdGluZzsKdXNlIHRoZSBkZXJlZmVyZW5jZSBvcGVyYXRvciAqIGluc3RlYWQuICovCgoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CgoKY2hhciogc3RyZHVwKGNvbnN0IGNoYXIqIHMpIHsKCiAgICBpbnQgc2l6ZSA9IHtzaXplb2Yocykvc2l6ZW9mKGNoYXIpfTsKICAKICAgIGNoYXIqIHN0cl9wdHIgPSBuZXcgY2hhcltzaXplXTsgCiAgICBzdHJjcHkoc3RyX3B0ciwgcyk7CgogICAgcmV0dXJuIHN0cl9wdHI7Cn0KCmludCBtYWluKCkKewogICAgY2hhciogcmR5ID0gc3RyZHVwKCJhc3MiKTsKICAgIHN0ZDo6Y291dCA8PCByZHkgPDwgc3RkOjplbmRsOwp9