class Foo
{
public:
Foo() { x = new int; }
~Foo() { delete x; }
private:
int *x;
};
Foo *p = new Foo[10];
free ( p );
Run Code Online (Sandbox Code Playgroud)
我对上面的代码感到困惑.它有什么问题吗?
我很想知道如何malloc分配内存(你能告诉我吗?),所以我试了一下.
这是分配内存的坏方法吗?
void* myMalloc(unsigned int size) {
return (void*) new bool[size];
}
Run Code Online (Sandbox Code Playgroud) 这是我的代码:
void MIDITest::CreateNoteBlock() {
IMidiMsgExt* midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(57, 100, 0, 0, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(60, 100, 0, tickSize * 38, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(62, 100, 0, 0, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(65, 100, 0, tickSize * 32, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(57, 0, tickSize * 111, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(60, 0, tickSize * 111, 0);
queuedNotes.insert(*midiMessage);
midiMessage = new IMidiMsgExt;
midiMessage->MakemidiMessageMsg(62, 0, tickSize * 75, …Run Code Online (Sandbox Code Playgroud) 为什么构造/析构函数不是在使用所谓的malloc和free在C++中,而不是当我们使用new和delete,构造函数/析构函数被调用?为什么会这样?