[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

C++に関するtamansaのブックマーク (5)

  • メモリの二重解放回避テク - akihiko’s tech note

    メモリの二重解放とは, new などで確保したメモリ領域(ヒープ領域)を2回 delete などで解放することを言う. new と delete をきちんと対応させて書いていないときに起こる問題だ.特にクラスのメンバに動的確保したメモリへのポインタを含む場合にやってしまいがちである.ここでは二重解放によって発生する問題を解説する. 結論から言うと,メモリを解放した後 (delete p1;),ほかの用途でメモリを確保し (p2=new T;),たまたまそれが解放したメモリと同じアドレスに割り当てられてしまった場合 (p1==p2),最初のメモリを二重解放すると (delete p1;),新しく確保したメモリ (p2) が解放されてしまう.この結果,新しく確保したメモリにアクセスすると値が書き換えられていたり,セグメンテーションフォルトが発生する場合がある.プログラマはまず,新しく確保したメ

    メモリの二重解放回避テク - akihiko’s tech note
    tamansa
    tamansa 2011/04/04
    メモリの二重解放回避テクとコピーコンストラクタ
  • 400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ

    システムの多機能化により、プログラムの内容が複雑化している。テクマトリックスの『Understand』は、プログラムの構造を可視化することで、ソースコードの解析時間を大幅に削減できる開発支援ツール。今回は同社の福永一寛氏に、Understandの機能や特徴について聞いた。 システムの多機能化により、プログラムの内容は複雑化している。既存コードの改修や多人数での開発における情報共有のためには、プログラム構造の理解が必須だが、ドキュメントと実装内容とが乖離している場合も多く、解析自体に工数がかかることもある。テクマトリックスの『Understand』は、プログラムの構造を可視化することで効率的なソフトウェア開発をサポートするソフトウェア開発環境。「組込みシステム開発技術展(ESEC)」にて、同社の福永一寛氏にその特徴を聞いた。 ソースコードの解析作業時間を大幅に削減する『Understand』

    400万行のコードを15分で見える化! プログラム解析ツール『Understand』で開発効率アップ
  • 標準C++ベクタ

    配列型文字列と比べるとC++ストリング型オブジェクトは使いやすく実行エラーの起こる回数が少ない.これと同じことが配列と標準C++ベクタ型オブジェクトの間でもいえる.つまり,C++ベクタオブジェクトは配列をもっと使いやすくしたものである.vectorクラステンプレートは標準C++ライブラリのコンテナのプロトタイプである. vectorクラステンプレートはvectorヘッダで定義されている. 例題 14.1   次のプログラムは,8個の文字列を持つベクタとそれらを呼び出すload()関数,そして表示するprint()関数を構築している.実行するとどんな結果が得られるか. #include <iostream> #include <string> #include <vector> using namespace std; void load(vector<string>&);

    tamansa
    tamansa 2010/04/22
  • C++ STL vectorの使い方 - OKWAVE

    こんばんは。 C++のstd::vectorに関する質問です。 vectorをポインタ渡しにしたときに メンバにアクセスする方法を知りたいのですが・・・ 以下ソースの☆の部分をどう記述したらよいでしょう? #include <vector> typedef struct test { char name[10]; char id[2]; } TEST; void funcVectorTest( std::vector<TEST> *a); int main(){ std::vector<TEST> a; int i; TEST foo= {"Taro","0"}; a.push_back(foo); printf("%s",a[0].name); a.push_back(foo); printf("%s",a[1].name); funcVectorTest(&a);//vectorのアド

    C++ STL vectorの使い方 - OKWAVE
    tamansa
    tamansa 2010/04/22
  • C++でわからないことがあります - C++初心者です。例えばvector<int>型を引数にとるようにするにはどうしたら良... - Yahoo!知恵袋

    C++でわからないことがあります C++初心者です。 例えばvector< int >型を引数にとるようにするにはどうしたら良いでしょうか?うまくできません。 また、メンバ関数を引数に取れるようにしたいのですがどうしたら良いでしょうか? class Decchiage{ public: vector< int > Data; Decchiage( vector< int > *data ){ Data = new vector< int >( *data ); } void Tukareta( void ( Decchiage::*func )( int i ) ){ tihs->func( 100 ); } void Ganbarenai( int i ){ i; } }; void main( void ){ vector< int > *data; *data = new vecto

    C++でわからないことがあります - C++初心者です。例えばvector<int>型を引数にとるようにするにはどうしたら良... - Yahoo!知恵袋
    tamansa
    tamansa 2010/04/21
  • 1