#include <iostream>
#include <string>
#include <cstdlib>
#include <cstring>
#include <cstddef>
int main() {
//First string
std::string src = "This is a test";
//Allocate space for second string
void* destalloc = std::malloc(sizeof(std::string));
if(destalloc == NULL) {
std::cerr << "Could not allocate memory" << std::endl;
return 1;
}
std::string* dest = static_cast<std::string*>(destalloc);
//Copy first string to second string
std::memcpy(dest, &src, sizeof(std::string));
//Modify second string
(*dest)[0] = 't';
//Output both strings
std::cout << src << std::endl;
std::cout << (*dest) << std::endl;
//Free memory for second string
std::free(destalloc);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxjc3RkZGVmPgoKaW50IG1haW4oKSB7CgkvL0ZpcnN0IHN0cmluZwoJc3RkOjpzdHJpbmcgc3JjID0gIlRoaXMgaXMgYSB0ZXN0IjsKCgkvL0FsbG9jYXRlIHNwYWNlIGZvciBzZWNvbmQgc3RyaW5nCgl2b2lkKiBkZXN0YWxsb2MgPSBzdGQ6Om1hbGxvYyhzaXplb2Yoc3RkOjpzdHJpbmcpKTsKCWlmKGRlc3RhbGxvYyA9PSBOVUxMKSB7CgkJc3RkOjpjZXJyIDw8ICJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IiA8PCBzdGQ6OmVuZGw7CgkJcmV0dXJuIDE7Cgl9CglzdGQ6OnN0cmluZyogZGVzdCA9IHN0YXRpY19jYXN0PHN0ZDo6c3RyaW5nKj4oZGVzdGFsbG9jKTsKCgkvL0NvcHkgZmlyc3Qgc3RyaW5nIHRvIHNlY29uZCBzdHJpbmcKCXN0ZDo6bWVtY3B5KGRlc3QsICZzcmMsIHNpemVvZihzdGQ6OnN0cmluZykpOwoKCS8vTW9kaWZ5IHNlY29uZCBzdHJpbmcKCSgqZGVzdClbMF0gPSAndCc7CgoJLy9PdXRwdXQgYm90aCBzdHJpbmdzCglzdGQ6OmNvdXQgPDwgc3JjIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCAoKmRlc3QpIDw8IHN0ZDo6ZW5kbDsKCgkvL0ZyZWUgbWVtb3J5IGZvciBzZWNvbmQgc3RyaW5nCglzdGQ6OmZyZWUoZGVzdGFsbG9jKTsKCglyZXR1cm4gMDsKfQ==