検索結果 6094 件

by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: コードの書き方チェックお願いできますでしょうか。
返信数: 2
閲覧数: 345

Re: コードの書き方チェックお願いできますでしょうか。

配列の0番目の要素を使っておらず、学生数STUDENT_NUM_MAX-1までしか安全に処理できないので、
STUDENT_NUM_MAXという名前が紛らわしくて良くないですね。
0番目の要素を使いたくないのであれば、要素をSTUDENT_NUM_MAX+1個確保するべきでしょう。

できれば、
・入力の読み取りに成功したか (scanfの戻り値)
・入力された値が正常か (大きすぎないか、小さすぎないか)
・計算がオーバーフローするか
のチェックもあるといいでしょう。
by みけCAT
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: malloc関数とfree
返信数: 2
閲覧数: 326

Re: malloc関数とfree

dmatrix関数内でせっかく確保して場所を配列に登録した領域を、
実際に利用する前に開放してしまっているので、
その後の処理で寿命が付きているオブジェクトを使用することになり、未定義動作になります。
dmatrix関数内のfree(base);を削除し、main関数内のfree(a);の直前にfree(*a);を追加するといいでしょう。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: E0167 パラメーターと互換性がありません。
返信数: 2
閲覧数: 276

Re: E0167 パラメーターと互換性がありません。

文字列にTEXTマクロを使用してUNICODE/非UNICODE両対応にするのも良さそうですね。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ポインタのデリファレンスについて
返信数: 2
閲覧数: 309

Re: ポインタのデリファレンスについて

2項演算子の*(一般的には掛け算)と単項演算子の*(一般的にはデリファレンス)は違います。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ウィンドウが一瞬で消えてしまう
返信数: 2
閲覧数: 280

Re: ウィンドウが一瞬で消えてしまう

main.cpp内のwhile文の条件が、
「関数を呼び出した戻り値」ではなく「関数のアドレス」を0と比較するようになっていますね。
通常の環境では関数のアドレスは0にはならないはずなので、これでは常に偽になり、
ループに入らずに終了してしまうでしょう。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 当たり判定が追加した敵を倒しても復活してしまう
返信数: 2
閲覧数: 347

Re: 当たり判定が追加した敵を倒しても復活してしまう

「存在フラグ」のはずのflagメンバが「方向フラグ」としても使われてしまっているようなので、
方向を表すデータを別のメンバで管理するようにするといいと思います。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリの残り時間表示
返信数: 4
閲覧数: 483

Re: DXライブラリの残り時間表示

この方法のままでいくなら、secを変える分の補正を

コード:

		if(min == 0)
			min = -1;
と特殊な場合のみするのではなく、

コード:

		min--;
と一般の場合についてするようにするのがいいでしょう。
finish()を呼ぶかの判定も、それに合わせて変えたほうがいいかもしれません。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリの残り時間表示
返信数: 4
閲覧数: 483

Re: DXライブラリの残り時間表示

分と秒に分けてから残り時間に変換しようとして複雑になっているようなので、
分ける前に60*TIME_MIN-secで残り時間[秒]を出して、
それを分と秒に分けて表示するのがいいと思います。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: LoadDivGraph関数での画像の描画の仕方について
返信数: 2
閲覧数: 376

Re: LoadDivGraph関数での画像の描画の仕方について

LoadDivGraph関数を使う場合画像ハンドルを配列に格納することになることが多いと思うので、
画像ハンドルを描画関数に渡しているところを配列の適切な要素を渡すように書き換えればいいと思います。

また、LoadDivGraph関数でも画像を1個(1マス)しか読み込まないことができます。
この場合、配列ではなく画像ハンドルを格納するint型の変数へのポインタをLoadDivGraph関数に渡すことができ、
その他の書き換えはいらないでしょう。

LoadDivGraph関数を使って失敗しているコードを見せていただけると、具体的な修正点を指摘できるかもしれません。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのタイピングゲームで入力を待ってほしくない
返信数: 2
閲覧数: 391

Re: DXライブラリのタイピングゲームで入力を待ってほしくない

入力を読み込む前にClearInputCharBuf()を呼んでいるため、キー入力のデータが消されてしまい、 入力を検出できなくなっているようです。 従って、この関数の呼び出しを削除するといいと思います。 動作確認したコード (DXライブラリ Ver3.17a) #include <DxLib.h> #define STR_MAX 1024 #define QUIZ_MAX 1024 #define STR_MAX 1024 #define WINDOW_X 640 #define WINDOW_Y 480 int MainFont; int White; void ShapeRotation...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクトを返す関数
返信数: 3
閲覧数: 490

Re: オブジェクトを返す関数

myclassクラスの代入演算子がオーバーロードされていないため、

コード:

a = a.f2();
b = b.f2();
の部分でポインタの値がコピーされ、
寿命が尽きることによりまだ使う領域が開放されてしまいます。
ポインタの値ではなく、領域の内容をコピーするような代入演算子の定義をmyclassに追加するといいでしょう。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 文字化けについて
返信数: 2
閲覧数: 714

Re: 文字化けについて

これはどのようにして教えてもらったのですか?
もしファイルでもらったのであれば、文字化け?したテキストではなく
そのファイルの該当部分のデータ(バイト列)をそのまま提示していただけると、
もしかしたらわかりやすくなるかもしれません。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: mingw64でのDxlib使用法
返信数: 6
閲覧数: 1229

Re: mingw64でのDxlib使用法

-m32オプションを使うことで、32ビットモードでコンパイルできるはずだと思います。
(「コンパイル」はできても、32ビット用ライブラリが無い環境だと「リンク」に失敗することがあります)
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2次元配列のポインタ標記
返信数: 2
閲覧数: 787

Re: 2次元配列のポインタ標記

dataは「int型の要素3個の配列」の配列なので、 この式中では「int型の要素3個の配列」へのポインタになります。 したがって、これに1を足すと次の「int型の要素3個の配列」を指すことになります。 (i*3)もjも整数であり、整数を足してもデリファレンスする効果は無いので、 data+(i*3)+jはdataが指す「int型の要素3個の配列」の((i*3)+j)個先の 「int型の要素3個の配列」を指すことになります。 これを*(data+(i*3)+j)としてデリファレンスすると、「int型の要素3個の配列」になるので、 配列の先頭要素のポインタがcoutに渡されることになります。 規...
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++で画像一枚のRGB値の割合を計算
返信数: 2
閲覧数: 816

Re: C++で画像一枚のRGB値の割合を計算

「RGB値の割合を計算」というのがどのような処理なのかよくわかりませんが、
画像処理といえばOpenCVでしょうか。
「OpenCV」でググる
オフトピック
Pythonのインターフェースを使えば、コンパイル不要ですぐに実行でき、
ソースコードをファイルに保存しなくてもインタラクティブに計算を試せるので便利です。
「OpenCV Python」でググる
(あ、でも「C++で」という条件でしたね。C++からでも使えるはずです。)
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 2331

Re: [c言語 Handy Graphic] クリック処理について

円の中心とマウスカーソルの距離が円の半径以内ならマウスカーソルが円の中にある、
という判定ができます。

「円の面積を求めて、その範囲内を条件として処理」というのは具体的にどのような処理なのかよくわからないので、
そう考えて良いかはわかりません。
by みけCAT
8ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: float型によるベクトル計算
返信数: 5
閲覧数: 1197

Re: float型によるベクトル計算

//angleから0を除外する if (Angle_G[0] == 0 || Angle_G[1] == 0 || Angle_G[2] == 0) { if (Angle_G[0] == 0) { angle_X= 0.0000000000000000000000001f; } if (Angle_G[1] == 0) { angle_Y = 0.0000000000000000000000001f; } if (Angle_G[2] == 0) { angle_Z = 0.0000000000000000000000001f; } } else { angle_X = Angle_G[0...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ln3の近似値
返信数: 1
閲覧数: 1884

Re: ln3の近似値

コード中の2っぽい部分を3っぽくしたら、求まるようです。 どうしてこれでいいのかは考え中です。 #include<stdio.h> #define K 30 int keta(double S1,double S2){ int si1=(int)S1; int si2=(int)S2; int j=0; while(j<K){ S1=(S1-si1)*10.0; si1=(int)S1; S2=(S2-si2)*10.0; si2=(int)S2; if(si1==si2)break; j++; } return j; } int main(void){ int i,j,k; long n=1...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 【急募】課題手伝ってください、
返信数: 2
閲覧数: 2327

Re: 【急募】課題手伝ってください、

これは禁止されている課題の丸投げに該当し、手も足も出ないことの明記も無いようですね。
まずはフォーラムルールを読み、それに沿った質問をするのがいいでしょう。
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 計算量の増加で実行時errorが発生した時の対処法
返信数: 7
閲覧数: 2338

Re: 計算量の増加で実行時errorが発生した時の対処法

int flag[N][N][N][N]は、Nの4乗個のintを確保します。 intが4バイトでN=256の場合、これは16GBになります。 そのプログラムで何をやっているかがわかりませんが、 処理内容によっては1要素のサイズを必要最低限まで減らすことで、メモリの使用量を減らすことができます。 例えばintからcharにすることで、扱える値の範囲が-128~127または0~255になる代わりに、 合計サイズを4GBに減らせます。 (もしかしたら環境によっては違うかもしれません) さらに1要素あたり1ビットに(unsigned char flag[N][N][N][N / 8])することができれ...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 2331

Re: [c言語 Handy Graphic] クリック処理について

main関数でjudgeの範囲外にアクセスしてしまう可能性がありますね。
judge[i]ではなく、judge[cir_color[i]]とするべきような気がします。
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 逆ポーランド式の計算について
返信数: 5
閲覧数: 1792

Re: 逆ポーランド式の計算について

「文字」と「文字列」をしっかり区別しましょう。 exprに入るのは「文字列」です。 expr[i]でそれぞれの「文字」が得られます。 a, s, m, dに入っているのは「文字」です。 「文字列」同士の比較にはstrcmpが使えますが、「文字」同士の比較には直接==演算子などを使うべきです。 「文字」は文字コード(整数)を用いて表され、 数字を表す文字コードは通常その数字とは異なります。 例えば、数字0を表す文字コードは'0'であり、ASCIIなら48です。 従って、文字が数字か判定するには、数値の0や9ではなく文字(コード)の'0'や'9'と比較するべきです。 もしくは、ctype.hを#i...
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 2331

Re: [c言語 Handy Graphic] クリック処理について

main関数内のx, y, vx, vyはそれぞれ3要素しか無いのに、ballcountを3から増やしてしまうと、
配列の範囲外にアクセスすることになり、危険です。
cir_colorだけでなく、色球のパラメータ全てについて、十分な要素数を確保しないといけません。
色球1個分のパラメータを構造体にまとめ、その構造体の配列を用意するのもいいかもしれません。
by みけCAT
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 通信関係
返信数: 3
閲覧数: 2569

Re: 通信関係

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

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

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

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

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
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 弾の描画について
返信数: 5
閲覧数: 2633

Re: 弾の描画について

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

Re: 弾の描画について

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

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
9ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 作ってみたプログラムが動作しないです
返信数: 12
閲覧数: 4376

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(...

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