カテゴリー【C/C++】
Cannot access memory invalid chunk size pointerなどメモリエラーが頻発する場合
POSTED BY
2021-12-22
2021-12-22

Segmentation Falutでcoreを吐いて終了するケースは多々あるが、大抵はメモリエラー(アクセスできないポインタを参照した)である。
当方の場合、うっかりで一番多いのは、Cライクに定義した構造体の中にC++のクラスを含めてしまいそれをmallocしてしまったからというのが最多である。
つまりこんな感じ。コードはCっぽく書いて、便利なC++クラスのみ使いたい場合よくやる。
typedef struct { int a; int b; std::vector<std::string> s_array; } Test; int main(void) { Test* t = (Test*)malloc(sizeof(Test)); if(t) { t->s_array.push_back(std::string("あ")); //←たぶん落ちる free(t); //←これも落ちる } return 0; }
構造体の中にいようがなんだろうが、C++のクラスはsizeofやmallocを使って確保してはならないのだ。
上記コードはs_arrayにアクセスしようとした時点で落ちる。しなくてもたぶんfree()で落ちる。
対処法1:スタックで使う
Test t; t.s_array.push_back(std::string("あ"));
対処法2:構造体でなくちゃんとクラス定義しnew/deleteを使う。
class Test { public: int a; int b; std::vector<std::string> s_array; }; int main(void) { Test* t = new Test(); if(t) { t->s_array.push_back(std::string("あ")); //落ちない delete t; //落ちない } return 0; }
以上です。
ヘッドスパ国内店舗数No.1!スカルクイック監修【ヘアーグローシャンプー】

国内シェアNo.1のヘッドスパ専門店が開発した、植物由来のエイジングケアシャンプー。
頭皮のスペシャリスト...【READ MORE】
愛犬の可愛らしい姿を撮影して自慢しよう!【Furboドッグカメラ】

Furbo(ファーボ)は、
ドッグオーナー、獣医、ドッグトレーナーなど
5,000人以上の愛犬家の声を反映させ、...【READ MORE】
≪新登場≫国内最速・高性能レンタルサーバー【ConoHa WING】

ConoHa WINGは国内最速の高性能レンタルサーバーサービスで
初期費用無料、最低利用期間無しで月額880円から...【READ MORE】
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
※本記事内容の無断転載を禁じます。
【キーワード検索】
コンタクトレンズの専門店「きらら」
使うたびに徐々に白髪が染まる「ROOT VANISH 白髪染めカラートリートメント」
ポケマルふるさと納税|産直サイトポケットマルシェが運営するふるさと納税サイト
動画変換、動画編集、DVD変換、画面録画を1本で!多機能動画処理ソフト【VideoProc】
神楽坂 ル コキヤージュ 絶対スベらない鉄板ギフト!テリーヌ ドゥ ショコラ
顧客満足度No.1 到着スピードNo.1 価格満足度No.1の【害獣駆除110番】
CMでおなじみのサイエンス社のシャワーヘッド【ミラブルプラス】
目元を綺麗に【キラリエ3アイクリーム】保湿・乾燥対策アイケア
通常は1ケースの大量ロットでないと仕入れができないノベルティグッズや販促品、粗品を小分けにして少数ロットから販売しております【小ロットン】
実質月額1,800円~ご利用可能!【Softbank光】

使うたびに徐々に白髪が染まる「ROOT VANISH 白髪染めカラートリートメント」

ポケマルふるさと納税|産直サイトポケットマルシェが運営するふるさと納税サイト

動画変換、動画編集、DVD変換、画面録画を1本で!多機能動画処理ソフト【VideoProc】

神楽坂 ル コキヤージュ 絶対スベらない鉄板ギフト!テリーヌ ドゥ ショコラ

顧客満足度No.1 到着スピードNo.1 価格満足度No.1の【害獣駆除110番】

CMでおなじみのサイエンス社のシャワーヘッド【ミラブルプラス】

目元を綺麗に【キラリエ3アイクリーム】保湿・乾燥対策アイケア

通常は1ケースの大量ロットでないと仕入れができないノベルティグッズや販促品、粗品を小分けにして少数ロットから販売しております【小ロットン】

実質月額1,800円~ご利用可能!【Softbank光】

【最近の記事】【全部の記事】
最新版のApache2でCGIが実行できずソースやバイナリが表示される場合bitcoinjs-lib、bip32、bip39を使ってビットコインアドレスを生成する
Cannot read property makeRandom of undefinedと言われた場合
web3.jsとwindow.ethereumでコントラクト関数を引数つきでコールしプロパティを取得する
JavaScriptで外部URLのファイルをダウンロードしてデータを取得する
【MetaMask】window.ethereumのeth_callで任意のコントラクト関数を呼ぶ
window.ethereum.requestに渡すdataフィールドをABIエンコードで作成する
【Solidity】Remix IDEを使用してサーバー不要のコントラクト開発&デバッグ【Ethereum】
【Windows】Googleフォトからダウンロードした動画が音声のみで映像が再生されない場合
PostgreSQLをソースコードからインストールしてsystemdのサービスとして動かす
【人気の記事】【全部の記事】
進研ゼミチャレンジタッチをAndroid端末化する5chブラウザJane Styleの板一覧にゲーム板等が表示されない場合
Windows版Google Driveが使用中と言われアンインストールできない場合
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Googleスプレッドシートを編集したら自動で更新日時を入れる
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
Ubuntuで固定IPアドレスを使う設定をする
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Hackintosh】組立PCにWindowsとmacOSを同居させる場合の注意点
Google ColaboratoryのTensorFlowバージョンを変更する(1.X←→2.X)
【カテゴリーリンク】
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋