アドレスをずらして配列をdelete

落ちた。

#include <iostream>

using namespace std;

class Foo {
private:
  int i;

public:
  Foo() { cout << "Foo()\n"; };
  ~Foo() { cout << "~Foo()\n"; };
};

int main() {
  Foo *p = new Foo[4];
  p++;
  delete [] p;
  return 0;
}


Foo()
Foo()
Foo()
Foo()
7 [sig] foo 2080 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)
Segmentation fault (core dumped)
引数つきのコンストラクタを呼び出すことはできないのかなぁ?