javascript magazine

主にjavascriptについて書こうと思っています。

std pairのポインタの理解

pairの配列をクラス内を持つ

pair<bool,int>trump[MAX_TRUMP_NUM];

このpairの配列trumpのgetter関数をpointerで返す

pair<bool,int>*BleDevice::getTrump(){
    return this->trump;
}

これを受け取る時に確保した配列分のメモリが取られると思ったらそうではありませんでした。

pair<bool,int>*partnerTrump;
// 受け取る
partnerTrump = device.second->getTrump();
// 一つ分しかない
int size = sizeof(partnerTrump) / sizeof(pair<bool,int>);
// しかし配列分アクセスできる
for(int i = 0;i < MAX_TRUMP_NUM;++i) {
  partnerTrump[i].second;
}

stackOverFlowを見るとどうやら、サイズをチェックすることはできないらしいです。

stackoverflow.com