を書き、私は非常に小さなコードスニペットを書いて、すでに次のエラーを得ている:SIGABRT/
malloc: *** error for object 0x100100080: pointer being freed was not allocated
問題は、私は、コンパイラのが話して何ポインタ見当がつかない、です。私は読み書き機能にアドレスで変数を渡しますが、私が知る限りそれを解放することはありませんでした。私のコードのどこにエラーがありますか?私はLeaksとZombiesでそれを走らせましたが、何も得られませんでした。ここで
は私のプログラムです:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
class Bank
{
private:
string __name;
public:
Bank()
{
__name = "";
}
Bank(string name)
{
__name = name;
}
string getName() const { return __name; }
};
int main (int argc, char * const argv[])
{
Bank bank("Bank of America");
Bank bank2;
cout << "Bank1: " << bank.getName() << endl;
string filename = bank.getName() + ".bank";
ofstream fout(filename.c_str(), ios::binary);
if (fout.good())
fout.write((char *)&bank, sizeof(bank));
fout.close();
ifstream fin(filename.c_str(), ios::binary);
if (fin.good())
fin.read((char *)&bank2, sizeof(bank2));
fin.close();
cout << "Bank2: " << bank2.getName() << endl;
return 0;
}
は実装に識別子 '__like_this'も' _Like_this'が、彼らは予約しているを使用しないでください。 – Fanael