スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

プログラミングメモ

C言語のポインタって中々曲者ですね(何を今更
ちゅーわけで自分用メモ。

下記のようなデータ構造の場合のデータコピー
■■■□□□□ = alldata
↑dat1↑dat2

alldata →data1とdata2へ…
みたいなことをしたいときは・・・。

typedef struct dataone {
int ndata_num;
int ndata_num2;
}DATA_O;

typedef struct datatwo {
char szbuffer[1024];
int nid;
}DATA_T;

#define MAX_O 20
#define MAX_T 128

DATA_O data1[MAX_O];
DATA_T data2[MAX_T];

int md1 = sizeof(DATA_O) * MAX_O;
int md2 = sizeof(DATA_T) * MAX_T;

BYTE *buf = new BYTE[md1 + md2];

//データをbufにコピー
memcpy(buf, &data1, md1);
memcpy(buf + md1, &data2, md2);

//dataをクリア
memset(data1, 0, md1);
memset(data2, 0, md2);

memcpy(&data1, buf, md1);
memcpy(&data2, buf + md1, md2);

delete[] buf;

これでちゃんと動くはず・・・。
確認はしてませんが(爆死

スポンサーサイト

キーコンフィグ

ゲーム用のキーコンフィグの作り方がわからない・・・。
WinAPIのjoyGetPosExがうまく動かないし・・・。
ただ適当な位置にコード追加すりゃ動いてるみたいだから、適切な場所に書いてないor渡し方がおかしいとかだろうけど。
GUIプログラミングの知識が乏しすぎるせいでさっぱりすぎ・・・。
あきらめてDirectInputを用いた方法にしようかなぁ・・・。


全く関係ないメモ
ただでさえ更新しない私のブログでございますが、8/9~8/17まではネット環境がないところにおりますので、コメントの返答などができません。
次回のエリオンさんのブログにご期待ください。

ど素人の俺がC++で頑張る

ちゃんと参考書読もうな俺。
あほうみたいに継承にvirtualつけてりゃコピー作成されることもないし、大丈夫だろうとかおもってたわけだけど、そういうわけにはいかんみたいね。
結局変数にstaticをつけることに…。なんだかなあ。

素直にCでやればよかったのだろうか…。

しかもvirtualつけるとオーバヘッドが~ なのね(´・ω・`)

ばご修正

100マス計算プログラムと、神経衰弱プログラムのバグを修正しました。

100マス計算
神経衰弱

修正内容
操作次第で、配列の範囲内にアクセスする可能性があったバグを修正
その他色々
毎度のことですが、VS2003で正常にコンパイルできることを確認しています。

なおソースファイルは毎回置き換えてるので、前の日記のURLにアクセスしても、最新のソースが表示されます。

やっぱりまだバグがあると思うので、見つけた人はコメントお願いします(爆

※コンパイルなどは自己責任でお願いします。

100マス足し算/数あてゲーム(神経衰弱)

某巨大掲示板の某七行プログラミングスレをみて、触発されて数当てゲームを作ってみた。
初心に戻ってC言語のみで書いてみたんだけど、これがこれが予想以上につらくてつらくて…。
…宣言でコンパイルエラーだしまくりました(´・ω・`)

なわけでして無駄に時間かかっちゃいましたよ。
行数151行…ふざけてるの?
まあ、いろいろと変なことやるために作ったんでいいんですけどね(ぁ


100マス足し算のほうは93行。まあこんなもんでしょうって感じ。
こっちのほうは100マス計算そのものを勘違いしてたので、
完成してから計算部分を書き直し…。
でも数行なんですけどね!(ぶち壊し)

続きを読む

PageTopNext>>

最近の記事
月別アーカイブ
カテゴリー
FC2カウンター
プロフィール

えりおん

  • Author:えりおん
  • 詳細情報
  • 性別:男です
  • 年齢:まだまだ若いですお♪
  • ちゃんと就職できたようです。社会人生活!

ブログ内検索

RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。