12/08/25 05:18:11.37
>>566
スレリンク(tech板:402番)
574:デフォルトの名無しさん
12/08/25 10:31:21.30
>>◆5bhYRM1Rdk
何個も宿題書いてるみたいだけど
小出しにしないで全部書いたほうが良いよ
一連の問題だって分かると解答も変わるし
575:デフォルトの名無しさん
12/08/25 10:58:35.13
それから自分のソースを添削してもらいたい場合を除き問題はコピペする。
なぜかというと、アップしたサイトから問題が消えてしまうと、最近の地方都市の
ようにシャッターが下りたままだらけのスレとなってしまう。
576:デフォルトの名無しさん
12/08/25 15:24:15.40
>>573
ここにリンク張れ
変なスレに誘導すんなカス
577:デフォルトの名無しさん
12/08/25 16:41:38.84
できれば、小出しにしないでほしいな。
数多くてもいいいから。
578: ◆5bhYRM1Rdk
12/08/26 11:25:52.58
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
URLリンク(ideone.com)
URLリンク(ideone.com)
URLリンク(ideone.com)
URLリンク(ideone.com)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4]期限 1週間以内
579:デフォルトの名無しさん
12/08/26 12:04:52.02
>>578
>>575
580:デフォルトの名無しさん
12/08/26 12:21:54.54
複数レスに渡るようなコードはうpろだに貼った方がいいけど
その場合でも問題の概要くらいは書いた方がいいな。手をつけてもらえなくなる
あとideone重い
581:デフォルトの名無しさん
12/08/26 17:54:05.36
>>578
酷い問題だなぁ
スタックとキューの実装比較がテーマなのにインターフェイスが異なるとかw
そも queue.rear って必要か?
print_queue_list() の実装も気持ち悪いし
582: ◆QZaw55cn4c
12/08/26 19:49:58.83
>>575
ideone や codepad は 5 年前の内容でも引っ張り出せる。5年前の自分のコードをみるとさすがに赤面ものだ
583:デフォルトの名無しさん
12/08/27 03:49:40.48
>>582
メールでやり取りするとまた削除対象になりますよ
584:デフォルトの名無しさん
12/08/27 20:27:33.77
>>578
Stack
URLリンク(ideone.com)
Queue
URLリンク(ideone.com)
585: ◆GnxmqzQNd3uR
12/08/28 03:49:37.29
main.cpp
URLリンク(paste.factorcode.org)
gff.h
URLリンク(paste.factorcode.org)
Struct[0]->Typeがメモリー上のデータではなくアドレスを指している理由が分かりません。
期待する動作としてはStruct[0]->TypeがStruct[1]->Type以降と同じようにデータを指すことです。
よろしくお願いします。
URLリンク(paste.factorcode.org)
実際の出力
0x005e43e8 Struct[0]->Type 0x005e43e8(6177768)
期待する出力
0x005e43e8 Struct[0]->Type 0xffffffff(4294967295)
586:デフォルトの名無しさん
12/08/28 04:11:30.99
洋ゲーのデータ読み込む宿題とは珍しい
587:デフォルトの名無しさん
12/08/28 04:53:11.55
>>585
test->Struct = (Struct *)(MEMORY_gff + 0x38);
で代入しちゃってるからなぁ
ローカル変数用意してそこに代入した方がいいかもね
Struct *testStruct = (Struct *)(MEMORY_gff + 0x38);
printf("0x%08lx\tStruct[%d]->Type\t0x%08lx(%lu)\r\n", &testStruct[i].Type, i, testStruct[i].Type, testStruct[i].Type);
あとマクロとか使ったほうがいいかもね
URLリンク(ideone.com)
588: ◆GnxmqzQNd3uR
12/08/28 05:12:56.58
>>587
ありがとうございます。
以下のような構造体を作ることは可能なのでしょうか?
可変長の部分は結局ポインタで繋げることになるのでしょうか?
構造体1
|=DWORD aa;
|-int bb;
|-構造体2[bb]
||-int count;
|\-DWORD aaa;
\-構造体3[bb]
|-char foobar[0][50];
|-char foobar[1][50];
\-char foobar[2][50];
589:デフォルトの名無しさん
12/08/28 05:27:50.84
>>588
>可変長の部分は結局ポインタで繋げることになるのでしょうか?
そうなるね
typedef struct {
int attr;
int num;
int items[ ];
} info_t;
info_t *info = malloc(sizeof(info_t) + sizeof(int) * num);
info->num = num;
構造体の最後のメンバである時に限って0長配列メンバは可能だけど
これは全メンバのアドレスが決まっているから可能
590:デフォルトの名無しさん
12/08/28 06:12:13.24
>>589
0長配列が使える様になったのは何時ごろからか知ってる?
昔、Xlib とかの構造体では items[1] とかやってて面倒だった記憶が有るんだけど
591:デフォルトの名無しさん
12/08/28 06:41:31.08
>>590
規格としてはC99からっぽい
URLリンク(seclan.dll.jp)
MS-C ver.6から使えたが、ANSI準拠ではないので大っぴらには使ってなかったようだ
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;