[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 05/09 08:24 / Filesize : 5 KB / Number-of Response : 21
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 37



1 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:02:07 ]
C言語の入門者向け解説スレです。

教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
  C/C++の宿題を片付けます 116代目
  pc11.2ch.net/test/read.cgi/tech/1222813731/

・C++言語はスレ違いです。
・分からない事をなるべく詳しく書いて下さい。
・ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
・開発環境や動作環境も晒すと答えが早いかもしれません。
・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

前スレ
  C言語なら俺に聞け(入門篇) Part 36
  pc11.2ch.net/test/read.cgi/tech/1221446435/
過去スレ
  makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000


2 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:05:23 ]
このスレッドは天才チンパンジー「アイちゃん」が
C言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

3 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:21:41 ]
Cは配列を返す事はできないがどんな物であれ配列へのポインタを返す事はできる

#include <stdio.h>

int (*func(int (*a)[10]))[10]
{
return a;
}

int main()
{
int i, j;
int a[2][10], (*b)[10];

for (i = 0; i < 2; i++)
for (j = 0; j < 10; j++)
a[i][j] = i * 10 + j;

b = func(a);

for (i = 0; i < 2; i++) {
for (j = 0; j < 10; j++)
printf(" %2d ", b[i][j]);
putchar('\n');
}

return 0;
}

4 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:29:03 ]
ところで、(入門篇)じゃないC言語なら俺に聞けスレはどこへ行ったの?

5 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:31:46 ]
>>4
そんなのあったっけ
必要なら立てろ

6 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 01:40:53 ]
【初心者お断り】ガチ規格準拠C専用スレ Part133
pc11.2ch.net/test/read.cgi/tech/1201153965/

7 名前:デフォルトの名無しさん [2008/10/15(水) 10:22:12 ]
mallocで確保した3次元配列(もどき)を関数に渡したいんですけど
Warningが消えません。どこを修正すればよいのでしょうか?




void Kansu(int *Array[10][5]);

int main(void)
{
 int *Array = malloc(sizeof(int) * 20 * 10 * 5);
 Kansu(Array);

 return 0;
}

void Kansu(int *Array[10][5])
{
 Array[1][1][1] = 1;
}

8 名前:デフォルトの名無しさん [2008/10/15(水) 10:33:26 ]
↑ちなみにCygwinです。

9 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 10:42:58 ]
void Kansu(int (*Array)[10][5]);
int (*Array)[10][5] = (int (*)[10][5])malloc(sizeof(int) * 20 * 10 * 5);
とかでどうか?

10 名前:デフォルトの名無しさん [2008/10/15(水) 11:47:43 ]
>>9
ありがとうございます。
エラーは回避できました。

しかし、その方法だと、もしArray宣言時に[10][5]の部分が[10億][5億]とかだと
スタック領域が足りなくなってしまわないですか?



11 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 11:53:18 ]
ペタを超えてエクサバイト確保するつもりですか
64bitには収まるだろうが…

12 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 11:54:05 ]
やってみろよ

13 名前:デフォルトの名無しさん [2008/10/15(水) 11:57:43 ]
[10億][5億]は言い過ぎですが、
ヒープ領域より小さくかつスタック領域より大きい、そんなサイズを今の研究で扱っています。


14 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 11:58:44 ]
そうじゃねーよ、int (*Array)[10][5] は普通のポインタだよ。32bit環境なら4バイトしか食わんだろ。

15 名前:デフォルトの名無しさん [2008/10/15(水) 12:07:12 ]
>>14
あ、すいません。
4byteでした・・・私の勘違いでしたm(__)mペコ

16 名前:デフォルトの名無しさん [2008/10/15(水) 12:17:52 ]
テラバイトの確保できる方法あるよ 仮想記憶の方法をつかう

17 名前:デフォルトの名無しさん [2008/10/15(水) 12:38:28 ]
最近はスーパーコンピウタを扱える研究者や学生(!)も増えてきたし
ありえないことはない


18 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 13:38:43 ]
わたしは6月に会社を作った者です。
求人はもっぱらハローワークを使っているのですが、
6月には五十代後半の方からしか応募がありませんでした。
ところが今は四十代後半の方からも応募があります。
この点は不況がチャンスになっています。
弊社は現在、応募された全ての方を有期間契約社員として、
案件が見つかり次第契約をさせて頂いています。
(案件がなかなか見つからないことも考えられるので、
弊社の場合、他社との並行営業をOKにしています。)
その危惧が現実になり、6月に契約が成立して9月に勤務
終了した五十代後半の方の新しい案件が決まりません。
(やはり現在も並行営業可で、数社で探されているのです
が、そちらでも見つからないそうです)
現在五十代後半可の求人が極端に少なく、ごくわずかな
案件に大勢の方が集中しております。
この点は不況のデメリットだと思います。

以上わたくしの観点から駄文を書かせて頂きました

19 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 13:38:57 ]
↑IT会社です

20 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 13:45:04 ]
>>18-19
失せろ間抜け。








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<5KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef