- ベストアンサー
関数の配列はできないでしょうか。
mkiiの回答
- mkii
- ベストアンサー率40% (43/105)
No.3の方のソースを元にしてみました。 struct int_array { int size; int *pi; }; struct int_array *func() { struct int_array *p = (struct int_array *)malloc(sizeof(struct int_array)); int *pil = (int*)malloc(sizeof(int[2])); pil[0] = 10; pil[1] = 20; p->pi = pil; p->size = 2; return p; } int main(void) { struct int_array *p = func(); /* 処理 */ free(p->pi); free(p); return 0; } こんな感じでどうでしょうか。 C++ならば、struct int_arrayはクラスにしてデストラクタで領域を解放させるべきですが。 (さらに言えばSTLやクラスライブラリを使ったっていいんですけどね)
関連するQ&A
- 配列を扱う関数についての質問です。
配列の名前を取得する関数はありますか? 質問の意味がわかりにくいと思いますので簡単に説明すると・・・ *********************************************************** たとえば $test[0]=5 という配列があった場合 「test」という名前を出力させたいです *********************************************************** わかりにく質問かとは思いますがぜひよろしくおねがいします(>_<)
- 締切済み
- PHP
- 改行させずに文字配列を出力させる関数
改行させずに文字配列を出力させる関数は、printf以外にありますか? printf("Hello world!!"); //改行せずに出力 char str[]="Hello world!!"; puts(str); //改行されて出力 出力の最後に自動的に改行文字を追加しないで、文字配列を表示する標準関数って、printf以外にありますか? もしくは、改行されない関数が必要な場合は自作するしかありませんか?
- ベストアンサー
- C・C++・C#
- 配列を書き換える関数を作成してみたいのですが、
配列を書き換える関数を作成してみたいのですが、 int a[10]={3,5,7,6,7,8,10,2,3,11}; 上記のような配列があるとして、 0~9のうち特定の添字を指定して、a[]の中身を書き換える関数を作る場合は、 どのような方法があるのでしょうか?
- ベストアンサー
- C・C++・C#
- 関数を使った配列計算
関数を用いて配列を使った行列の演算(入力された行列の行列式、転置行列、逆行列)をするプログラムを見やすくしたいのですが、配列を関数に渡すやり方がわかりません。 出来れば実際のプログラムで教えてもらいたいです。よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C言語 配列を交えた関数
C言語にて配列を絡めた関数を作っています 配列には後にそれぞれの値を与えるのですが double total(int n){ int i; double total = 0; int y[NUMBER] ={0}; for (i = 0 ; i < n ; i++) { tota = tota + (combination(n,i) * power(i) * y[n - i]);} return (tota); } combinationは順列nCi powerは-1^iを表してあり 別々に表示させた場合問題なく出力されます printf("%lf\n" , res + combination(1,0) * power(0) * y[1] + combination(1,1) \ * power(1) * y[0] のようにして実行した場合もただしくでます しかしこれだとtotalを出力させたとき0となり(関数内で配列を初期化させているため?)={0}を消すと出力時に恐ろしい桁の数になってしまいます この関数をうまく作動させるための改善案をご指導願えませんか?情報不足で判断できない場合補足にて追加させていただきます 当方C言語初心者のため詳しくお願いいたします
- ベストアンサー
- C・C++・C#
- 配列を関数の戻り値に使う
こんばんわ。 PHP5で配列を関数の戻り値として返す方法がわからず今回投稿させていただきました。 配列は1次元で 1,2,3 の値が a という配列に格納されています。 呼び出された関数(testメソッド)で a配列を返し、bで受けようとするのですが、bの値には NULL となっています。 返す際に return $a; としており、 $b=$obj-〉test(); で、aをbで受けようと考えております。 配列を返す場合は普通にretuneで返すだけではダメなのでしょうか。 解決方法がお分りの方がいらっしゃいましたらご教授のほうおねがいします。
- ベストアンサー
- PHP
- 関数とarguments配列
●質問の主旨 下記サイト、CodeStudyによる JavaScriptの関数とarguments配列の 使い方に関する問題に対する 答えとなるコードの記述が分かりません。 どなたかアドバイスをお願いします。 CodeStudy 関数その2 3.arguments その3 http://jeek.jp/study/section18/3 ●問題文 関数checkが定義されています。 check内のif文により、引数が3つ以外の際は、 outputで"引数が3つではありません。"と出力させましょう。 function check(x, y, z) { if() { output("引数が3つではありません。"); } } check(1, 2, 3, 4); ●自分で作った途中経過 resultやreturnの使い方がよく分かりません。 function check(x, y, z) { var result = 0; if(arguments.length !== 3) { output("引数が3つではありません。"); } return result; } check(1, 2, 3, 4); output(check); ●コードの条件(ヒント) argumentsは、引数を格納する配列で、 argumentsを使うと引数をいくつでもとることが出来ます。 また、argumentsは配列なので、 .lengthを使うと長さが求められます。
- ベストアンサー
- JavaScript
- VBA 配列計算について 配列の入力に配列の使用
配列に複数のセル値の合計値を設定したいと思っています。 求める合計値は複数あるため、出力も配列となります。 そこで下記のようにプログラムを考えたのですが、全て同じ値の配列として出力されてしまいます。 VBAではC言語のように配列の古い値に足していくことはできないのでしょうか? (sum()は0で初期化) (10個飛ばしのデータの合計値を算出) For i = 0 To 10 For j = 0 To 5 sum(i)= sum(i) + Worksheets(sheetname).Cells(10, 3).Offset(j * 10, 0).Value Next i Next j 出力配列例 全て同じ値になってしまいます・・・ 1.254 1.254 1.254 ・・・ 回避方法もしくはうまい計算方法などありませんでしょうか
- ベストアンサー
- Visual Basic
- 配列に関数るCプログラムの問題
次の問題の解答をお願いします。 配列tree の各要素を表示するプログラムを作成せよ。配列の各要素は0 から999 の整数である。配列で表示に使用する要素の数Nはキーボードで入力す ること。result(出力例) より下の表示を処理する部分は、関数としてモジュール化し、自 分自身を再帰的に呼び出すよう実装すること。 出力例: N を入力して下さい。 15 tree[15]: 8, 9, 5, 11, 7, 6, 12, 15, 20, 3, 1, 4, 14, 17, 18 result: (ただ "___"の部分はスペースです) __________________15 ____________11 __________________20 ________9 __________________3 _____________7 __________________1 8 __________________4 _____________6 __________________14 ________5 __________________17 _____________12 ___________________18
- ベストアンサー
- C・C++・C#
- 多次元配列を、1次元の配列にする関数を書いてください。
以下のように、多次元配列の配列をペチャンコにする関数(array_flatten)ってどうかきますか? <?php $arr[0] = 'a'; $arr[1][0] = 'b'; $arr[1][1][0] = 'c'; $arr[1][1][1][0] = 'd'; $arr[1][1][1][1][0] = 'e'; $arr[1][1][1][2] = 'f'; $arr[1][1][2] = 'g'; $arr[1][2] = 'h'; $arr[2] = 'i'; function array_flatten($arg){ 処理; } $new_arr = array_flatten($arr); print_r($new_arr); ?> ↓ Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f [6] => g [7] => h [8] => i ) ※関数のなかで、ペチャンコの配列を格納するための新しい配列を宣言すると、 同関数を再帰的に呼び出したら、その配列が初期化されますよね?
- ベストアンサー
- PHP
お礼
ありがとうございました。 うーん、わたしにはちょっと複雑です。(^^; 「->」あたりからよくわからないです… 安直にはいかないということがわかっただけでも、収穫でした。