#include #include using namespace std; shared_ptr readSomeData() { shared_ptr data(new char[1000]); printf("Allocating memory!\n"); printf("Current copies: %ld\n", data.use_count()); // Do something to actually put data into the string return data; } int main(int argc, char* argv[]) { //shared_ptr z = readSomeData(); { shared_ptr x = readSomeData(); shared_ptr y = x; y = nullptr; printf("In inner scope, current copies: %ld\n", x.use_count()); printf("In main, current copies: %ld\n", x.use_count()); } printf("All done!\n"); return 0; }