検索結果 5951 件

by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 通信関係
返信数: 3
閲覧数: 220

Re: 通信関係

オフトピック
本題とは関係ないと思いますが、AddChatLog関数やAddServerLog関数などで、
入力の文字列がそのまま含まれる文字列をノーチェックで
fprintf_s関数やprintf_s関数の書式として渡す可能性がありますね。
このようなことをしてしまうと、%を含む文字列を入力されたときに予期せぬ動作を引き起こすことに繋がり、
危険です。
整形を行った後の文字列をそのまま出力するには、fputs関数を使う方がいいでしょう。
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 作ってみたプログラムが動作しないです
返信数: 12
閲覧数: 479

Re: 作ってみたプログラムが動作しないです

(rand関数からは0~RAND_MAXの整数が全て等確率で返るすると)
商を使うにしろ余りを使うにしろ別の何かを使うにしろ、
0~RAND_MAXの整数から欲しい範囲の整数にマップすることになるので、
(RAND_MAX+1)が欲しい整数の種類数で割り切れない場合は、必ず等確率ではなくなります。
等確率にしたければ、割り切れない端の部分の数が出たら捨ててやり直すのがいいでしょう。

参考:いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 弾の描画について
返信数: 5
閲覧数: 210

Re: 弾の描画について

ちなみに、今回は追加した仮ソースコードを以下のように変更することで、 一部の関数の呼び出しのログを取り、異常な描画関数の呼び出しを発見しました。 ALL.h #ifndef ALL_H_GUARD_BE6CB1AC_7161_4AE9_9B9E_748D0EEC3A87 #define ALL_H_GUARD_BE6CB1AC_7161_4AE9_9B9E_748D0EEC3A87 #include <DxLib.h> #include "Loading.h" #include "PL_Shot.h" static const int SCREEN_WIDTH = 1280; void Pla...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 弾の描画について
返信数: 5
閲覧数: 210

Re: 弾の描画について

原因がわかりました。 全ての弾の描画を行うPL_Shot_Draw()をPL_Shot_Update()内のループの中で呼んでしまっているため、 処理順で最初の弾以外は座標更新前に1回以上描画され、座標更新後にも描画されるので、 二重になってしまうようです。 よって、PL_Shot_Draw()をPL_Shot_Update()内のループ内ではなく、 ループから出た後で呼ぶようにすると改善するでしょう。 また、PlayerDraw()もPlayerUpdate()内のループの中から呼ばれていますが、 こちらはループが1回しか回らない上、引数で処理対象を指定しているので、問題ないでしょう。 そも...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 弾の描画について
返信数: 5
閲覧数: 210

Re: 弾の描画について

さらに観察したところ、
生きている弾の中でpl_shotのインデックスが最小のものが普通に、その他が二重に描画されるようです。
原因は調査中です。
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 弾の描画について
返信数: 5
閲覧数: 210

Re: 弾の描画について

以下の仮ソースコードと添付の仮画像を追加して実行してみたところ、 一部の弾が1フレームに移動する距離(20px)だけずれて二重に描画される現象が観測できました。 また、同じ弾でも飛んでいる途中に二重になったり普通になったりすることもありました。 原因は調査中です。 仮ソースコード ALL.h #ifndef ALL_H_GUARD_BE6CB1AC_7161_4AE9_9B9E_748D0EEC3A87 #define ALL_H_GUARD_BE6CB1AC_7161_4AE9_9B9E_748D0EEC3A87 #include <DxLib.h> #include "Loading.h"...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 作ってみたプログラムが動作しないです
返信数: 12
閲覧数: 479

Re: 作ってみたプログラムが動作しないです

でもプログラム中で配列の個数を決める方法には興味があるので回答いただけると嬉しいです。 realloc()を用いて動的確保する方法があります。 #include<stdio.h> #include<time.h> #include<stdlib.h> int getrand(int min,int max); int main (void) { int* random = NULL, i = 0; do { int* random_next = realloc(random, sizeof(int) * (i + 1)); if (random_next == NULL) { perror(...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: アニメーションの切り替えについて
返信数: 2
閲覧数: 158

Re: アニメーションの切り替えについて

アニメーションのコマが進む間隔は4フレームなのに対し、1回の上キー入力でjflagがtrueになる時間は6フレームなので、
ジャンプアニメーションの1コマ目しか描画されないかは上キー入力のタイミングによりそうです。
本当に1コマ目しか描画されていないか、
playerImgIndexを画面に表示するだけでなくファイルにログを取って確認してみるべきかもしれません。
ただ、それでもジャンプのアニメーションを行う時間が短そうなので、
「着地するまで」など別の判定方法にしたほうがいいと思います。
by みけCAT
3週間前
フォーラム: C言語何でも質問掲示板
トピック: 構造体のポインタ配列と動的メモリ確保について
返信数: 1
閲覧数: 203

Re: 構造体のポインタ配列と動的メモリ確保について

・seisekiはint型なのに0.6をかけたらdouble型にならないのでしょうか。 int型の変数にdouble型の数をかけたら確かにdouble型になります。 そして、int型の変数に格納するときは自動的にint型に変換されます。 ただし、double型に変換される前に割り算をしており、切り捨てられる可能性があるのは心配ですね。 ・メモリを確保..とありますが100回繰り返したら結局100名分の構造体配列を用意するのと一緒なのではないのでしょうか。 一緒ではありません。 むしろポインタ配列(や動的メモリ確保システムのオーバーヘッド)の分だけ 100名分の構造体配列を用意するよりメモリ使...
by みけCAT
4週間前
フォーラム: C言語何でも質問掲示板
トピック: switch文を使った整理
返信数: 3
閲覧数: 354

Re: switch文を使った整理

switch文の処理の重さがどの程度なのかわかりません。 int input(void); void func(int); int main(void) { int x = input(); switch (x) { case 0: func(123); break; case 1: func(456); break; case 2: func(789); break; } return 0; } というコードを書いて Compiler Explorer でコンパイルしてみたところ、 どのコンパイラでも比較と条件分岐の連続になるようでした。 数十個~数百個程度の分岐であれば、おそらく画像のロ...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXlibの起動時と起動後の挙動について
返信数: 1
閲覧数: 134

Re: DXlibの起動時と起動後の挙動について

ctrl+F5を押した際に初期設定されているwindowのサイズの黒画面が出てきてそのあとに私が設定したサイズの画面が出てきて下記の処理が実行されています。 SetGraphMode関数をDxLib_Init()の前に呼び出すようにすると改善するでしょう。 実行してからしばらくすると処理が止まってしまい入力を受け付けずキャラが動かなくなってしまいます。 ここに載っていない関数があり、断定はできませんが、 各フレームで毎回画像を読み込まないようにする (PlayerInit関数を毎フレーム呼ばず、ループに入る前で1度だけ呼ぶようにする)か、 宗教上の理由などでどうしても毎フレーム画像を読み込み...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 大学の課題です。ヒントだけでもいいのでください 再帰関数です
返信数: 15
閲覧数: 628

Re: 大学の課題です。ヒントだけでもいいのでください 再帰関数です

問題5 まずはじめに、 配列・ポインタなどは用いない この制約は非常に困ります。 まず、「など」の範囲がわかりません。 例えば「配列・ポインタなど(教科書〇〇の△章以降で紹介されている機能)」かもしれないし、 「配列・ポインタなど(この問題の採点者が個人的に嫌いな機能)」かもしれないし、 「配列・ポインタなど(C言語にある言語機能すべて)」かもしれないし… 具体的に何を使ってはいけないのかわからないので、プログラムが書きにくいです。 次に、一般的なパソコン環境においてC言語でポインタを使わずに入出力をするのは難しいと考えられます。 C言語の関数呼び出し演算子()は引数に関数へのポインタを取るの...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 大学の課題です。ヒントだけでもいいのでください 再帰関数です
返信数: 15
閲覧数: 628

Re: 大学の課題です。ヒントだけでもいいのでください 再帰関数です

問題4 投稿日時が近く、不自然な空白を含めて一字一句同じに近い質問を見つけました。 キーボードから(空白類文字を含むかもしれない)1行を入力して,先頭のK... - Yahoo!知恵袋 ここに答えに近いコードが載っています。 私も解いてみました。 まずはHaskellで。 ただし「キーボードから入力」という所はサボっています。メモリを動的確保しているかもわかりません。 judge :: String -> String judge str = judge_i str "" "" (0 :: Integer) (0 :: Integer) where judge_i s s1 s2 l1 l2 ...
by みけCAT
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Dxlibで二次元配列のマップチップとの当たり判定について
返信数: 10
閲覧数: 533

Re: Dxlibで二次元配列のマップチップとの当たり判定について

具体的にどのようなことにこまっているか教えていただけますか? 以下、 フォーラムルール より転載 「うまくいきません」という質問は大抵回答に困ります。 1. 自分は今何がしたくて 2. どう取り組んで(作ったプログラムはどれで 3. どのようなエラーやトラブルで困っていて 4. 自分は何が解らないのか、知りたいのか 5. 今のCの知識はどの程度なのか この5点をしっかりと明記して下さい。 環境に依存する場合やライブラリを使っているときは 使っているOS名・コンパイラ名・ライブラリ名も明記しましょう。 コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう。 「ゲーム作っているので...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: プレイヤーの移動処理がうまくいかない
返信数: 2
閲覧数: 236

Re: プレイヤーの移動処理がうまくいかない

CharMove関数の引数plxおよびplyを参照にすることで、
CharMove関数内での座標の更新がPlayer_tに反映されるようにするとよさそうな気がします。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Win32API の ReadFile の使い方が分からない
返信数: 18
閲覧数: 810

Re: Win32API の ReadFile の使い方が分からない

ReadFile関数で読み込んだサイズは「バイト数」で返されるのに対し、
DrawText関数で指定するサイズは「文字数」です。
したがって、1文字を複数バイトで表す場合、文字数が実際より長いと勘違いしてしまうようです。
DrawText関数に渡しているwReadSizeを、wReadSize / sizeof(TCHAR)としてみてください。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2Dアクションゲームの障害物の当たり判定の不具合
返信数: 5
閲覧数: 260

Re: 2Dアクションゲームの障害物の当たり判定の不具合

float t_Block::Vertex_maxX(int num) { float max = NULL; //一番高いX値を求める for (int i = 0; i < NUM_VERTEX; i++) { if (max == NULL) max = obj_Block[num].pFormat[i].pos.x; else if (max < obj_Block[num].pFormat[i].pos.x) max = obj_Block[num].pFormat[i].pos.x; } return max; } NULLは通常空ポインタを表すものであり、数値として使うものでは...
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Win32API の ReadFile の使い方が分からない
返信数: 18
閲覧数: 810

Re: Win32API の ReadFile の使い方が分からない

結城紬 さんが書きました:
2ヶ月前
DrawText(W) API に入力する文字コードは Unicode (16ビットLE)でなければいけません。
DrawTextW APIだと入力がUnicodeでないといけないので、
Shift_JISの文字列をそのまま使いたければDrawTextA APIを使う、という方法もあります。
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: タイム関数について
返信数: 2
閲覧数: 198

Re: タイム関数について

「タイム関数」というのがよくわからないですが、
マイコンで時刻を扱いたいならRTC(リアルタイムクロック)モジュールを使うのがいいと思います。
RTCは内蔵されている機種もありますし、独立したICもあります。


PICでI2C - リアルタイムクロック(RTC) DS1307+の使い方: セッピーナの趣味の天文計算:独立したIC
PICで省エネ時計を作る - KERI's Lab:内蔵(PIC18F27J53)
by みけCAT
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 実行ファイルを作れる実行ファイルの作り方を教えて欲しい
返信数: 2
閲覧数: 248

Re: 実行ファイルを作れる実行ファイルの作り方を教えて欲しい

WindowsならPEフォーマット、LinuxならELFフォーマットなど実行ファイルのフォーマットを学んで、
自分でこれらのファイルを書き出すようなプログラムを書く、という方法が考えられます。
ファイルフォーマットだけでなく、対象のCPU(IA-32とか)の機械語の知識も必要になるでしょう。

ただ、これは大変なので、
Nscripterのように「中間コードを実行するプログラム(固定)」と「実行する中間コード(可変)」の組を出力する、というのではダメでしょうか?
(Nscripterでは中間コードではなくテキストのスクリプトを直接実行していますが)
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: データベースを使ったシステムは配布していいのか?
返信数: 14
閲覧数: 646

Re: データベースを使ったシステムは配布していいのか?

Run-Time Loadable Extensions
で解説されているように、sqlite3ext.hはSQLiteの拡張ライブラリを作る時にincludeするもののようであり、
APIの呼び出しを拡張ライブラリ用に置き換えるコードが含まれているので、
普通のアプリケーションを作るには害になるようです。

コード:

#include "c:\\SQLite\\\sqlite3ext.h"
を削除してみてください。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: memcpy代替案
返信数: 7
閲覧数: 440

Re: memcpy代替案

環境やコピーするサイズにもよりますが、並列化すると速くなるかもしれません。 これまでの関数もまとめてテストコードを作ってみました。 なぜか(アドレスの範囲だけ確保した場所が使われるにあたって実際のRAMを割り当てる処理の分?) 最初のコピーは他より時間がかかるようなので、それぞれ2回実行し、 かつ最初に実行する関数を選べるようにしてみました。 copy_test.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> double get_time(void) { struct tim...
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [C++]zlibを用いたpngの解凍と読み込み
返信数: 7
閲覧数: 481

Re: [C++]zlibを用いたpngの解凍と読み込み

ValgrindやAddressSanitizerなどで範囲外アクセスなどを起こしていないかチェックしてみるのもいいかもしれないですね。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [C++]zlibを用いたpngの解凍と読み込み
返信数: 7
閲覧数: 481

Re: [C++]zlibを用いたpngの解凍と読み込み

データ構造によってはデータが連続せず、
何も考えずに配列として先頭要素へのポインタを渡してしまうと変な所にアクセスしておかしくなってしまうかもしれません。
iml::zlib::decodeの返り値の型(deflate::decodeの返り値の型?)は何ですか?
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [C++]zlibを用いたpngの解凍と読み込み
返信数: 7
閲覧数: 481

Re: [C++]zlibを用いたpngの解凍と読み込み

いろは さんが書きました:
3ヶ月前
一応"comp_size"はこの分のメモリ確保した直後に0を代入しているのでメモリ範囲外の書き込みについては大丈夫だと思います。
ごめんなさい、見落としました。
現状で大丈夫そうですね。
考え直してみます。
by みけCAT
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [C++]zlibを用いたpngの解凍と読み込み
返信数: 7
閲覧数: 481

Re: [C++]zlibを用いたpngの解凍と読み込み

//圧縮画像データを結合 comp_img = new unsigned char[comp_size]; comp_size = 0; for (auto itr = img_index.begin(); itr != img_index.end(); ++itr) { iml::copy_order(&comp_img[comp_size], itr->second, itr->first); comp_size += itr->first; } これはいけませんね。 comp_imgにポインタを代入しているバッファはcomp_sizeバイトしか確保していないのに、 いきなりcomp_s...
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 関数に置き替える問題です。
返信数: 15
閲覧数: 644

Re: 関数に置き替える問題です。

Act さんが書きました:
4ヶ月前
gcc -Wall (ファイル名) (ファイル名).c としたときに出てきたのですが
「ファイル名」が具体的に何かはっきりしませんが、例えば

コード:

gcc -o x.exe x.c
と「普通にコンパイル」した後、

コード:

gcc -Wall x.exe x.c
を実行すると、重複定義のエラーが出ました。
gccで出力ファイル名を指定するには、-oオプションの後にファイル名を書きます。

x.c

コード:

int main(){}
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 構造体、ポインタ、scanf関数に関して、エラーが解決できません。
返信数: 4
閲覧数: 291

Re: 構造体、ポインタ、scanf関数に関して、エラーが解決できません。

読み込んだ値をint型のdate->ageに入れてほしいので、これに&をつけた&date->ageを渡します。
date->sexも同様です。

date->nameはchar型を要素とする配列であり、
(sizeofの引数などの例外を除いた)式中では先頭要素へのポインタに変換されます。
scanfの書式%sはchar型の配列の先頭要素を指すポインタを要求する仕様になっており、これは正しいです。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: hit&blowの作り方がわかりません。
返信数: 1
閲覧数: 215

Re: hit&blowの作り方がわかりません。

要求仕様がわかりませんが、このコードは少なくとも hit, blowの値を初期化せずに計算(インクリメント)に用いている ループのjの範囲がおかしいので、範囲外のhimitsu[4]の値を読んでいる jのループがiのループの外に出てしまっているので、範囲外のkaito[4]の値を読んでいる という所が間違っていますね。 また、 後半のインデントが乱れている scanfが成功したかをチェックしていないため、kaito[​i]の値が初期化されず不定のまま計算に使われる可能性がある 関数inputが宣言されているが、使用されていない という所が間違いとまでは言えませんが、よくないですね。
by みけCAT
4ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 学校の課題に関して
返信数: 2
閲覧数: 309

Re: 学校の課題に関して

・fopenを無駄に2回している
・範囲外のbase[100][100]の値を読んでいる
という問題点もありますね。

(fprintfの書式に対して引数が多すぎること自体は、多すぎる引数が無視されるだけで無害です)

詳細検索ページへ移動する