C言語なら俺に聞け(入門編)Part 96at TECH
C言語なら俺に聞け(入門編)Part 96 - 暇つぶし2ch159:デフォルトの名無しさん
12/02/07 16:21:29.31
>>158
単位がくれるっていう前提で3段階っていっちゃったね。
ふつうはどの大学も合格がABCの3つだからね。



160:デフォルトの名無しさん
12/02/07 16:29:03.64
未提出がある時点でAがありえない、とまではいわないが、
未提出があるにもかかわらずAを与えうる回答をそれまでにしたかどうかが気になるな

161:デフォルトの名無しさん
12/02/07 16:30:27.44
つまり、求められた回答と同じレベル(テストで言うと100点)の回答しか出していないなら、未提出がある時点でAはない。

162:デフォルトの名無しさん
12/02/07 16:46:10.86
実は本当は8つ提出してなくてぶっちゃけAとかどうでもよくて
単位が貰えるか不安だったけど安心した俺内野手

163:デフォルトの名無しさん
12/02/07 17:01:57.43
>>159
「単位をくれる」なのか「単位が貰える」なのか
つか前提ってすごいな。最近の大学はそんなもんなのか?

>>162
教授次第だけど1/3以上未提出なら普通はDになるんじゃないかな

164:デフォルトの名無しさん
12/02/07 17:02:21.17
むしろ全部提出してる奴は少ないからな。必修なら落とされないと思う。

165:デフォルトの名無しさん
12/02/07 17:10:40.98
そういや私の通ってた大学も(頭が)足りないやつは追加提出させられてた気がするな
必修ならほぼ落とすことは無いか

166:デフォルトの名無しさん
12/02/07 17:25:23.02
選択がないので1つでも落すとアボン。

167:デフォルトの名無しさん
12/02/07 17:31:58.14
落とされない大学なんぞに意味はないな。

168:デフォルトの名無しさん
12/02/07 17:57:20.43
情報系じゃなかったけど
レポート半期で12本初回抜き打ち試験中間試験定期試験とか当たり前のようにやって
全部提出出席しても試験でしくじって落とされるやつがちらほらいて地獄絵図だった
後輩にはうちの大学には絶対に来るなと忠告したよ

169:デフォルトの名無しさん
12/02/07 18:34:08.84
何の為に大学に行ってるの?

170:デフォルトの名無しさん
12/02/07 18:35:02.15
行かないと社会が人間扱いしてくれないからとりあえず

171:デフォルトの名無しさん
12/02/07 18:43:35.47
>>168
普通だろそれ


172:デフォルトの名無しさん
12/02/07 18:53:04.52
必修だから落とされないとか、そんな世の中なの?

173:デフォルトの名無しさん
12/02/07 18:59:29.22
関数func()内で
int data[177][23]が定義されており、データが関数内で入れられるとします。

この関数の外から、2次元配列のポインタのポインタを渡し、int data[177][23]のアドレスを引数で返したいのですが、


void func( ① ){
int data[177][23];

② = data;
}

void func2(void){

174:デフォルトの名無しさん
12/02/07 19:01:40.10
失礼しました。途中で送信してしまったようで・・・
改めまして


関数func()内で
int data[177][23]が定義されており、データが関数内で入れられるとします。

この関数の外から、2次元配列のポインタのポインタを渡し、int data[177][23]のアドレスを引数で返したいのですが、


void func1(①){
int data[177][23];

② = data;
}

void func2(void){
③ // 2次元配列のポインタのポインタの宣言

func1(④);
}

①~④の記述は、どの様にしたらよろしいでしょうか?


175:174
12/02/07 19:03:24.76
int data[177][23]の実体はfunc1()が持ち、
他の関数からその中身を参照にしたいのです(グローバル変数使用不可)

宜しくお願い致します。

176:デフォルトの名無しさん
12/02/07 19:06:05.04
> 関数func()内で

177:デフォルトの名無しさん
12/02/07 19:07:47.55
mallocを使うか根本的なところから見直す

178:デフォルトの名無しさん
12/02/07 19:15:15.24
void func1( *(*pArray)[23]){
  int data[177][23];

  *pArray = data;
}

void func2(void){
  int *pArray[177][23]; // 2次元配列のポインタのポインタの宣言
  int ans;

  func1(pArray);

  ans = pArray[0][0] + pArray[176][22];
}

イメージとしてはこんな感じですが、もちろんこれでは上手く行きません・・・



179:174
12/02/07 19:17:27.61
int data[177][23]をグローバルに持って行ければ全然問題ないのですが、
事情があって、それが出来ないのです・・・

※私に与えられてる権限としては、func1の引数の変更、func2の製作

180:デフォルトの名無しさん
12/02/07 19:18:57.51
ゴミコード発生の瞬間である。


181:デフォルトの名無しさん
12/02/07 19:20:25.28
やりたい事がさっぱり分からん
エスパー待ち

182:デフォルトの名無しさん
12/02/07 19:25:29.62
その実装だと誤動作するよ。自動変数で調べてね。
以下のいずれかの修正をしてもらう必要がある。

void getData(*****) {
. static int data[N][M];
}
②ソースを分割して、
static int data[N][M];
void getData(*******);

malloc つかう。

183:174
12/02/07 19:29:37.65
>>182
おお!
すみません・・・static扱いでお願いします。
実際はstaticでした。懸案事案の抽象化に失敗してしまいました・・・



void func1(①){
  static int data[177][23];

  ② = data;
}

void func2(void){
  ③ // 2次元配列のポインタのポインタの宣言

  func1(④);
}


184:デフォルトの名無しさん
12/02/07 19:31:48.22
>>181
知りたいのは、「2次元配列のポインタのポインタ」を引数に渡してアドレスを入れてもらう
やり方です

185:デフォルトの名無しさん
12/02/07 19:43:35.47
①int*** value
②*value
③int** data
④&data
で、できると思うけど、何がやりたいのかは知らないし、あまりよくないコードな気がする。
やりたいこと書いて代案出してもらったほうがいいと思うけど、まあ、とりあえず。

186:デフォルトの名無しさん
12/02/07 19:53:39.40
ローカルstaic変数のアドレスを取るとかグローバルと大差ないわ
いや、グローバルはグローバルだって意識できるからまだいいけど
これじゃあソレもできないから最低最悪だな

187:デフォルトの名無しさん
12/02/07 20:40:54.32
静的なオブジェクト/動的なオブジェクト(free必要)
これ以上の情報を意識する必要はないし、意識しなけりゃならないのは最低最悪。
グローバル? 今時使わないよね。w

188:デフォルトの名無しさん
12/02/07 20:44:17.33
質問
関数って引数は何個までとか何バイトまでにした方が良いってのはある?
ある程度を超えるとメモリに積む作業が増えるので急激に遅くなる、とか。
大差無いのかな。

189:デフォルトの名無しさん
12/02/07 20:49:42.42
そんなことを気にするのはお前には早すぎるよ。

190:デフォルトの名無しさん
12/02/07 20:54:56.96
>>187
こいつ最高にアホ

191:デフォルトの名無しさん
12/02/07 20:59:26.69
>>189 初心者は速度を気にしちゃいけないなんて決まりがあったのか。
知らなかったわ、すまん。

192:デフォルトの名無しさん
12/02/07 21:03:19.05
>>188
変数固めて構造体にして、ポインタで渡す
俺なら

193:はちみつ餃子 ◆8X2XSCHEME
12/02/07 21:03:52.10
>>188
パフォーマンスへの影響は環境によるので実測しないとなんとも言えないけど、
計算量的によほど厳しい条件下でなければはっきりわかるような差は出ないよ。
回数が多く呼ばれる関数ならちょっとした差が全体に多きく影響することもあるけど、
どこまで許容できるかは程度問題なのでスパッと基準を決められるものではないな。

194:デフォルトの名無しさん
12/02/07 21:07:52.89
問題になるまでほっときゃいい
腐りだしたら破棄して作りなおしゃいい
ダしゃいいタマがうずくなら

195:デフォルトの名無しさん
12/02/07 21:09:28.84
>>191
決まりではないが鉄則ではある

196:デフォルトの名無しさん
12/02/07 21:10:39.31
>>188
大雑把に1KB以下なら気にしなくていい

197:はちみつ餃子 ◆8X2XSCHEME
12/02/07 21:12:29.93
>>192
Windows API はそういう感じだね。

でも、その構造体だってどこかでメモリを消費するわけだし、
構造体に値を放り込むのだってゼロコストなわけじゃない。
同じデータをある程度何度も繰り返して渡すような状況ならいいが、
そうでないならパフォーマンスの差はほとんど出ないと思う。

バイナリ互換性を維持したまま構造体に要素を追加して拡張できる点で有利ではあるので、
長期的にインターフェイスを維持したいときには考慮に値する方法と言える。

198:デフォルトの名無しさん
12/02/07 21:19:43.77
こういうくだらん話しか出てこないから初心者は気にすることはないってこと。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch