8.5.     void*_____________235

void* merncpy (void* to, const void* from, size_t n_bytes)
{

const char* f = reinterpret_cast<const char*>(from);

char *t = reinterpret_cast<char*>(to);

for (int i = 0; i < n_bytes; ++i)
t[i] = f[i];

return to;

}

int main()
{

char v[4] ;

int w = 000424344;

memcpytv, &w, 4); // 
cout  w  " == "  v;

}

 merncpy  -  .  
      ,  from.  -
       
,   w.  ,      -
 ,   stack,      () 
 .

  genstack.h

//  : genstack.h
typedef void* generic_ptr;

class stack {
public:

explicit stack(int size = 1000): max_len(size) , top(EMPTY)
{ s = new generic_ptr[size]; assert(s i= 0);}

-stack() { delete [] s; }

void reset() { top = EMPTY; }

void push(generic_ptr c) { s[++top] = c; }

generic_ptr pop() { return s[top--]; }

generic_ptr top_of() { return s[top]; }

bool empty()const { return top == EMPTY; }

bool full()const { return top == max_len - 1; }
private:

enum { EMPTY = -1} ;

generic_ptr* s;

int max_len;

int top;

};