#include <iostream>
using namespace std;

struct Block {
	int* number;
	
	Block(){
		number = new int;
	}
	
	Block(const Block &other) {
		number  = new int;
		*number = *(other.number);
	}
	
	~Block() {
		if (number != nullptr) {
			delete number;
		}
	}
};

void function(Block block) {
	cout << block.number << ": " << *(block.number) << endl;
}

int main() {
	Block block;
	*(block.number) = 1;
	cout << block.number << ": " << *(block.number) << endl;
	
	function(block);
	
	return 0;
}