memory for class object having pointer as data member
Hi A class has char* and int as member variable. Constructor of class allocates memory to char*. Hence , I am de-allocating memory of char* into destructor. This is what a simple class is. Suppose system is 32 bit and hence, I would need 8 byte (4 for int and 4 for pointer) for this class object. Now on this I have below questions: Case 1: If I create a class object in main method, object is stored on stack. But memory required for char* is taken from heap due to new operator....Is this correct? Does this mean that class object takes 8 byte from stack (due to int and pointer) and additional from heap as per input string size? Case 2: If I create a class object pointer in main method, pointer object is stored on stack. But memory required for int and char* is taken from heap....Is this correct? Does this mean that class object pointer takes 4 byte from stack (for class pointer) and additional from heap as per input string size + 8 bytes for data members? Also as pointer is allocated in main using new, I must delete the same in main method even though char* is getting freed by destructor. Many thanks and sorry for such a basic question.