ページ 11

引数の渡し方

Posted: 2011年8月18日(木) 23:01
by パパラッチ
分からないことがあるのでこの掲示板を使わせていただきます

DXライブラリを使っているのですが
画像の読み込み関数と描画関数を分ける場合、
大量の画像ハンドルを読み込み関数から描画関数へ送る必要があると思うんです
staticを使って同じモジュールにつっこめばいいかと思ったのですが・・

引数をつかって配列や構造体を渡す方法があるか伺いたいのです
また今回の問題で間違っていることをぬかしていたら教えてください

Re: 引数の渡し方

Posted: 2011年8月18日(木) 23:03
by box
パパラッチ さんが書きました: 引数をつかって配列や構造体を渡す方法があるか伺いたいのです
あります。ていうか、そういうプログラムを今までに書いたことがないのでしょうか?

Re: 引数の渡し方

Posted: 2011年8月18日(木) 23:22
by パパラッチ
あるのであれば教えていただけないでしょうか
自分で探しても分からなかったもんで・・・

引数を使ったプログラムは書いたことはありますが配列や構造体を渡したことはないです

Re: 引数の渡し方

Posted: 2011年8月18日(木) 23:32
by softya(ソフト屋)
実のところポインタの知識が重要になります。

「C言語ポインタと構造体を理解する」
http://chaichan.lolipop.jp/src/c.htm

まず、こちらを読んでみてください。

Re: 引数の渡し方

Posted: 2011年8月18日(木) 23:37
by パパラッチ
ありがとうございます
提示されたサイト+さっき検索したサイトで解決できたと思います

タイトルと全く違った問題なのですが
配列へ代入するときに[0]をとばして[1]から代入したいのですが良い手はありますか

Re: 引数の渡し方

Posted: 2011年8月18日(木) 23:41
by box
パパラッチ さんが書きました: 自分で探しても分からなかったもんで・・・
入門書で「配列」や「構造体」を説明している箇所にきっと書いてあるレベルの話だと思います。

ネットでも、
「C 配列 引数」

「C 構造体 引数」
あたりでググれば、いくらでも見つかります。記述内容が正しいかどうかは別として。

Re: 引数の渡し方

Posted: 2011年8月18日(木) 23:41
by softya(ソフト屋)
パパラッチ さんが書きました:配列へ代入するときに[0]をとばして[1]から代入したいのですが良い手はありますか
どの様な代入の話か良く分かりません。
添字の話であればfor( i=1;で始めれば良いと思いますが、そういう話では無いんでしょうね。

簡単で良いのでサンプルを書いてみてもらえますか。
ソースコードはcodeタグをお使いください。詳しくはフォーラムルールを。
http://dixq.net/board/board.html

Re: 引数の渡し方

Posted: 2011年8月18日(木) 23:52
by パパラッチ
boxさん、すいません 実際に探してみたら一件みつけました 
これからは探してから質問します
softya(ソフト屋) さんが書きました:添字の話であればfor( i=1;で始めれば良いと思いますが、そういう話では無いんでしょうね。
う・・・添字の話です・・・
forでやるのがいいのでしょうね・・・
もっと記号一発でぱぱっとという感じのがあるかな~と妄想していたのですが
forで留めておきます
回答ありがとうございました

Re: 引数の渡し方

Posted: 2011年8月19日(金) 01:08
by Dixq (管理人)
> boxさん、すいません 実際に探してみたら一件みつけました

本当にそんなに少なかったですか?
boxさんが言っている検索結果ですが、上から下まで全て配列の引数の話になっていると思います。
http://www.google.co.jp/search?sourceid ... 97&qscrl=1

> もっと記号一発でぱぱっとという感じのがあるかな~と妄想していたのですが

何がしたいのか、具体的に言ってもらわないと良く分かりませんが、
特定のバイト数要素をコピーするなら、memcpy関数等を使えば一行でかけるかと思います。

Re: 引数の渡し方

Posted: 2011年8月19日(金) 09:11
by softya(ソフト屋)
Dixq (管理人) さんが書きました:何がしたいのか、具体的に言ってもらわないと良く分かりませんが、
特定のバイト数要素をコピーするなら、memcpy関数等を使えば一行でかけるかと思います。
構造体配列の場合はちゃんとアライメントとか理解してやらないと危険なのでmemcpyは避けたほうが良いかと思いますよ。

Re: 引数の渡し方

Posted: 2011年8月19日(金) 10:13
by Dixq (管理人)
「配列」や「構造体」ということだったので、私としては別々だと思っていました。
そして、配列の要素[1]からコピーする方法をということでしたので「特定のバイト数要素をコピーするなら」として、前者に限定したつもりではありましたが、分かりにくかったですね。

Re: 引数の渡し方

Posted: 2011年8月19日(金) 22:07
by ISLe
構造体配列にmemcpyを使うと何か問題がありましたっけ。
PODでシャローコピーという前提はありますけど。

Re: 引数の渡し方

Posted: 2011年8月19日(金) 23:25
by softya(ソフト屋)
sizeofをちゃんと使いこなしていればOKだと思いますが、サイズ決め打ちなら危険だと思います。
あとクラスを使っていないとか前提が必要ですよね。