Click here to Skip to main content
15,921,884 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Dynamically create memory based on 2 different struture templates Pin
Richard MacCutchan14-Jun-17 23:18
mveRichard MacCutchan14-Jun-17 23:18 
GeneralRe: Dynamically create memory based on 2 different struture templates Pin
manoharbalu15-Jun-17 0:34
manoharbalu15-Jun-17 0:34 
GeneralRe: Dynamically create memory based on 2 different struture templates Pin
Richard MacCutchan15-Jun-17 1:11
mveRichard MacCutchan15-Jun-17 1:11 
GeneralRe: Dynamically create memory based on 2 different struture templates Pin
leon de boer15-Jun-17 8:06
leon de boer15-Jun-17 8:06 
GeneralRe: Dynamically create memory based on 2 different struture templates Pin
manoharbalu15-Jun-17 19:54
manoharbalu15-Jun-17 19:54 
GeneralRe: Dynamically create memory based on 2 different struture templates Pin
leon de boer16-Jun-17 4:14
leon de boer16-Jun-17 4:14 
QuestionValue for a structure is not showing in watch window in VS2008 Pin
manoharbalu12-Jun-17 1:14
manoharbalu12-Jun-17 1:14 
AnswerRe: Value for a structure is not showing in watch window in VS2008 Pin
Richard MacCutchan12-Jun-17 6:26
mveRichard MacCutchan12-Jun-17 6:26 
GeneralRe: Value for a structure is not showing in watch window in VS2008 Pin
manoharbalu12-Jun-17 19:14
manoharbalu12-Jun-17 19:14 
GeneralRe: Value for a structure is not showing in watch window in VS2008 Pin
leon de boer12-Jun-17 20:57
leon de boer12-Jun-17 20:57 
QuestionHooking file move with shell extension? Pin
TheHeadlessSourceMan10-Jun-17 21:25
TheHeadlessSourceMan10-Jun-17 21:25 
AnswerRe: Hooking file move with shell extension? Pin
Jochen Arndt11-Jun-17 0:34
professionalJochen Arndt11-Jun-17 0:34 
GeneralRe: Hooking file move with shell extension? Pin
Richard MacCutchan11-Jun-17 1:20
mveRichard MacCutchan11-Jun-17 1:20 
QuestionDisable a textbox based on combo box choice Pin
lolici7-Jun-17 23:07
lolici7-Jun-17 23:07 
AnswerRe: Disable a textbox based on combo box choice Pin
Jochen Arndt7-Jun-17 23:37
professionalJochen Arndt7-Jun-17 23:37 
GeneralRe: Disable a textbox based on combo box choice Pin
lolici8-Jun-17 3:44
lolici8-Jun-17 3:44 
GeneralRe: Disable a textbox based on combo box choice Pin
Jochen Arndt8-Jun-17 4:37
professionalJochen Arndt8-Jun-17 4:37 
GeneralRe: Disable a textbox based on combo box choice Pin
lolici8-Jun-17 11:01
lolici8-Jun-17 11:01 
GeneralRe: Disable a textbox based on combo box choice Pin
Jochen Arndt8-Jun-17 21:17
professionalJochen Arndt8-Jun-17 21:17 
QuestionOverload -> operator Pin
_Flaviu6-Jun-17 23:54
_Flaviu6-Jun-17 23:54 
AnswerRe: Overload -> operator Pin
Jochen Arndt7-Jun-17 0:43
professionalJochen Arndt7-Jun-17 0:43 
GeneralRe: Overload -> operator Pin
_Flaviu7-Jun-17 1:56
_Flaviu7-Jun-17 1:56 
AnswerRe: Overload -> operator Pin
Andy Bantly29-Jun-17 6:28
Andy Bantly29-Jun-17 6:28 
QuestionTrying to understand this article on why auto_ptr has been deprecated Pin
swampwiz6-Jun-17 6:45
swampwiz6-Jun-17 6:45 
I was reading this article, and I'm trying to understand a point that the author is trying to make.

Bartek's coding blog: Smart pointers gotchas[^]

class Test
{
public:
Test():m_value(0) { std::cout << "Test::Test" << std::endl; }
~Test() { std::cout << "Test::~Test destructor" << std::endl; }

int m_value;
};

typedef std::auto_ptr<test> TestAutoPtr;
typedef std::unique_ptr<test> TestUniquePtr;
typedef std::shared_ptr<test> TestSharedPtr;

void doSomethig(TestAutoPtr myPtr) {
myPtr->m_value = 11;
}

void AutoPtrTest() {
TestAutoPtr myTest(new Test());
doSomethig(myTest);
myTest->m_value = 10;
}

The author says this will crash. It seems that when myTest is instantiated, there is an auto_ptr object that now exists as a member of myTest, pointing to a heap instantiation of Test. Then when doSomethig() is called the *value* of the pointer is passed (i.e., the address of that heap Test object), and a new auto_ptr object, myPtr, is created, with its value set to the address of that Test object. And then after doSomethig() finishes, myPtr is destroyed, but since it is an auto_ptr, that destruction will delete the object that has the address of its value (i.e., the Test object). So, when a dereference of the myTest object (i.e., an auto_ptr object) is attempted, the Test object is no longer there, and hence an error that is as per trying to dereference an uninitialized (or perhaps null?) pointer.

Is my explanation accurate?
AnswerRe: Trying to understand this article on why auto_ptr has been deprecated Pin
leon de boer6-Jun-17 9:49
leon de boer6-Jun-17 9:49 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.