関数に引数として渡す値が多すぎるので構造体にして参照渡しをすることにしました。
ループ内で構造体の生成を行なう必要があるためループ内生成をしているのですが、
これは次のループに入る前に生成した構造体のメモリとかを解放する必要はありますか?
あるとすればどのように解放すれば良いでしょうか?
基本的に関数が終了すればそのスコープ内の変数データは消えるはずなのでいらないような気もしますが構造体を扱うようにしてから明らかにパフォーマンスが落ちたのでおかしいと思いました。
以下はサンプルコードです。
実際のコードも概ねこんな感じで書いてます。
一応クロックつけました。
c++
1 2#include <iostream> 3#include <time.h> 4 5using namespace std; 6 7struct aaa{ 8 int a; 9 int b; 10 int c; 11 int d; 12 int e; 13 int f; 14 int g; 15 int h; 16 int i; 17}; 18 19void ccc(aaa &get) 20{ 21 get.a = 111; 22} 23 24void bbb() 25{ 26 aaa send = {1,2,3,4,5,6,7,8,9}; 27 ccc(send); 28} 29 30int main() 31{ 32 33 clock_t start = clock(); 34 for(int i=0; i<100000000; i++) bbb(); 35 clock_t end = clock(); 36 cout<<(double)(end - start) / CLOCKS_PER_SEC; 37 return 0; 38} 39
えーと、このコードは何をしたいんです?
回答1件
あなたの回答
tips
プレビュー