[過去ログ] スレを勃てるまでもないC/C++の質問はここで 21 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
780(1): 2014/01/01(水)02:22 AAS
なるほど・・ありがとうございます。
結構色々実装しないといけない感じになるんですね。
すみませんあともう1つ質問させていただきたいのですが、
int sample1[2][2] = {{1,2}, {1,2}};
int sample2[3][2] = {{1,2}, {1,2}, {1,2}};
int* p;
if (true) {
p = sample1;
} else {
p = sample2;
}
こういったことがしたいのですが、
p = sample1;
p = sample2;
の部分で
cannot convert error のような感じになってしまいます。
sample1 と sample2 の両方が格納できるような変数を作りたいのですが、
どのような書き方をすればいいでしょうか。
アドバイスいただけると嬉しいです。
781(1): 2014/01/01(水)12:05 AAS
>>777
呼び出したい関数が、ただの関数なのかクラスのメンバ関数なのか、さらに
メンバ関数の場合、仮想関数(virtual)なのか、オーバーロードされているか
どうかによって多少異なる。
普通の関数なら、C言語のみの記述でも、下記のようなデータ構造で名前と
関数エントリを管理することはできる。 ただ、下記のように単純にテーブル
から関数ポインタを取得して呼び出す場合、引数の並びと、順序毎の引数の
型はすべての関数で同じでなければならない。 引数をスタックに積むのと、
スタックの解放は、呼び出し側で行うので、引数の数が多い分には構わない。
typedef struct func_info
{
char func_name[32];
void (*func_entry)();
} FUNC_INFO;
static FUNC_INFO func_table[]={{"strcpy",strcpy}
,{"strcat",strcat}
,{"strlen",strlen}};
>>780
int *p[2];
ただ、ポインタでは要素の数は管理できないし、両者の区別もできない。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.168s*