検索結果 149 件

by maru
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: データメンバの初期化に引数なしコンストラクタと引数付きコンストラクタを多重定義 したプログラム
返信数: 3
閲覧数: 316

Re: データメンバの初期化に引数なしコンストラクタと引数付きコンストラクタを多重定義 したプログラム

norisuke825 さんが書きました:
11ヶ月前
解決しました。ありがとうございます。
とのことですが、どのように解決したか出せませんか?
単にコンパイルが通っただけ、または実行できた、としても問題が表面に出ていないだけで、プログラムとして正しくない(バグが残っている)場合もあります。
by maru
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: データメンバの初期化に引数なしコンストラクタと引数付きコンストラクタを多重定義 したプログラム
返信数: 3
閲覧数: 316

Re: データメンバの初期化に引数なしコンストラクタと引数付きコンストラクタを多重定義 したプログラム

name tasteの定義を間違えているのではないでしょうか? const char* xxx[n]は定数文字列(定数文字へのポインタ)の配列です。 必要なのは定数文字列なのではないでしょうか? それならば、 const char xxx[];// 定数文字配列 または const char* pxxx;// 定数文字へのポインタ とすべきです。 xxxは「定数」文字配列なので書き換えを行うことはできません。つまり、コンストラクタで変更できません。定義を行うときに初期化できるだけです。コンストラクタで変更するにはconstをつけてはいけません。 pxxxはポインタなので書き換えができますが、ポ...
by maru
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 物理 光る風について
返信数: 6
閲覧数: 904

Re: 物理 光る風について

釣りかな?
オフトピック
風が光っているだけであり、風が光の速さで動いているわけではないので追い越すことは可能でしょう。(もし光る風が実在すればですが。)
by maru
11ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: queueでpushとpopの連続実行時にエラー
返信数: 7
閲覧数: 663

Re: queueでpushとpopの連続実行時にエラー

質問です。
以下のコードでは RECORD_T の実体が確保されていないんですが、そこはいいんですか?
pRecord が不定ですけど。

コード:

		RECORD_T *pRecord;
		memset(pRecord, 0, sizeof(RECORD_T));
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 未解決の外部シンボル(T_ChangeNum(int))が参照されました
返信数: 5
閲覧数: 824

Re: 未解決の外部シンボル(T_ChangeNum(int))が参照されました

しかしこれでは、若干動作が遅くなってしまうのではないでしょうか。 性能を気にして inline を維持したいのならば、かずまさんが書いているように、 クラス定義内に関数の実体を書く、またはクラス定義の直後に inline キーワードを つけた関数定義を書けばいいでしょう。 class Test { int T_num; public: void T_ChangeNum(int number); int T_GiveNum() const { return T_num; } } inline void Test::T_ChangeNum(int number) { T_num = number...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 未解決の外部シンボル(T_ChangeNum(int))が参照されました
返信数: 5
閲覧数: 824

Re: 未解決の外部シンボル(T_ChangeNum(int))が参照されました

test.cpp の inline が余分です。意味を考えてみて下さい。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列の照合アルゴリズム
返信数: 4
閲覧数: 764

Re: 文字列の照合アルゴリズム

厳密にはtestは文字列ではなく、char配列です。
0で終端されたchar配列を文字列として扱うstr関数群があるだけです。

で、p=配列変数名というコードは、pに配列変数の先頭アドレス(ポインタ)を代入するコードになります。
配列変数名に整数(n)を加えると配列変数のn番目の要素へのポインタになります。
オフトピック
ソースコードを記述する場合、codeタグで囲っていただけると幸いです。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 作成したプログラムの失敗ケースはどんな場合か?
返信数: 3
閲覧数: 799

Re: 作成したプログラムの失敗ケースはどんな場合か?

for文で回す回数が間違っています。sizeof(S)は102になり、文字列長ではありません。
そのため、文字列長が101未満の場合、配列Sに不定値が残ります。
オフトピック
文字列長102以上の場合、深刻な問題を引き起こす可能性があります。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームの解析をするのにC言語は向いてますか?
返信数: 5
閲覧数: 2267

Re: ゲームの解析をするのにC言語は向いてますか?

にわ鳥 さんが書きました:
1年前
えと、ゲームの処理を覗いて(?)チートコードを作ったりしたいってことです
他人が書いた難読化(?)されたコードとか読む必要があるらしくて
そういうことするのにこの言語は適してますかね?
適していません。
オフトピック
というか、チートをしたいと言っている人がこんな質問をしている時点で...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 でんたくの作成
返信数: 4
閲覧数: 492

Re: C言語 でんたくの作成

おっと、”;” が余分だった。実際にコンパイルしてみないとわからないこともあるね。

コード:

int AI(int x,char s,int y)	// ここの末尾にあった ; が余分
{
	switch (s) {
	case'+':	return x + y;
	case'-':	return x - y;
	case'*':	return x * y;
	case'/':	return x / y;
	default:	return error;
	}
}
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 でんたくの作成
返信数: 4
閲覧数: 492

Re: C言語 でんたくの作成

"}"が一つ足りません。 #include<stdio.h> const int error = 1; int AI(int, char, int); int main(void) { int a, c, d; char b; printf("式を入力"); scanf("%d%c%d", &a, &b, &c); d = AI(a, b, c); if (d == error) { printf("エラー発生\n"); } else { printf("答えは%dです。\n", d); } return 0; } int AI(int x,char s,int y); { switch (s...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: ビット演算を用いた基数変換について
返信数: 2
閲覧数: 377

Re: ビット演算を用いた基数変換について

<疑問点> 関数cv2binはきちんとビット演算を用いているといえるでしょうか? コマンドライン引数からの2つの値を'unsigned n'にsscanfを用いて代入するにはどうすればよいでしょうか? &演算子はビット演算なので、一応要件を満たしているでしょう。 コマンドライン引数は argc に引数の数、argv に引数文字列へのポインタ配列として main関数に渡されます。 (ただし argv[0] は実行コマンドそのもの) この問題では Length(byte) 文字列へのポインタが argv[1] に入っていて、Integer number 文字列へのポインタが argv[2] に入...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: コンストラクターのインスタンスが引数リストと一致しない
返信数: 5
閲覧数: 760

Re: コンストラクターのインスタンスが引数リストと一致しない

コード、エラーメッセージが示されていない状態では何ともコメントできません。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: コンストラクターのインスタンスが引数リストと一致しない
返信数: 5
閲覧数: 760

Re: コンストラクターのインスタンスが引数リストと一致しない

私には仮引数が13個で、実引数が11個に見えるのだが...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 既に宣言されたクラスを使うとエラーが出る。
返信数: 3
閲覧数: 711

Re: 既に宣言されたクラスを使うとエラーが出る。

多重インクルードされていることが原因。 enemy.h が control.h でインクルードされていて、さらに control.cpp で enemy.h と control.h の両方がインクルードされているので、ENEMY が 多重に定義されている。そのためにclass再定義というエラーが発生している。 対策は3つほど浮かぶ。 1.control.cpp から enemy.h のインクルードを削除する。 2.ヘッダファイルの先頭に #pragma once を追加する。 3.インクルードガードを行う。(下記参照) #ifndef xxxx_h_include // include gua...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: アドレス入力
返信数: 2
閲覧数: 2085

Re: アドレス入力

cの場合(c++でも可)

コード:

double* p = (double*)malloc(sizeof(double) * 800);
//  色々な処理
free(p);
c++の場合

コード:

double* p = new double[800];
//  色々な処理
delete [] p;
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: constの使い道が分かりません!
返信数: 3
閲覧数: 634

Re: constの使い道が分かりません!

Google君に「C マジックナンバー」と聞いてみたら、 「次のような理由で、マジックナンバーはプログラム中に含まれないことが好ましいとされる。 ・その数値の持つ意味がわかりづらい。 ・数値を変更する場合に、複数の箇所を変更しなければならない可能性がある。 」 という答えが得られました。 constを使用して定数として定義するプログラムを目にするのですが、なぜ定義するのでしょうか? まさにマジックナンバーを避けるために定数を定義するんです。 必要とあればその都度かけば良いものではないのでしょうか?(今回だったら500って書けば良い) 500という値を変更したい時、プログラム中にある500を全部...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: hash算法に対する理解
返信数: 9
閲覧数: 2444

Re: hash算法に対する理解

余りいい加減なことは言わないでほしい。 衝突の可能性はキーの数・性質/ハッシュテーブルの大きさ/ハッシュ関数の質に依存するので一概にはいえないはず。 衝突時の処理もハッシュアルゴリズム自体とは無関係。2, 3回の比較で済むかどうかはその方式による。 いい加減なことを書いたつもりはありません。 「ハッシュ関数を使えば、どんな場合でも 4回以上の比較を 行わなうことはない」と誤読されたようですが、 私は、回答の先頭で、 「key と value のセットが 100個あったとします。」と書き、 「実際のコードで見たほうが分かりやすいでしょう。」と書いて、 そのコードを提示しました。 キーの数は 1...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: hash算法に対する理解
返信数: 9
閲覧数: 2444

Re: hash算法に対する理解

かずま さんが書きました:ハッシュ関数を使うと、ほぼ 1発で value が見つかります。
ダメな場合でも、2, 3回の比較で済みます。
余りいい加減なことは言わないでほしい。
衝突の可能性はキーの数・性質/ハッシュテーブルの大きさ/ハッシュ関数の質に依存するので一概にはいえないはず。
衝突時の処理もハッシュアルゴリズム自体とは無関係。2, 3回の比較で済むかどうかはその方式による。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 正常にファイルを参照できず、悩んでいます。
返信数: 13
閲覧数: 864

Re: 正常にファイルを参照できず、悩んでいます。

あれ? 38行目、ifstream に文字列をフォーマットする機能はなかったはずだが?

コード:

        ifstream ifs_2("TLT\\%s\\%s\\B.txt" ,folder_name,file_num);//データB
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 正常にファイルを参照できず、悩んでいます。
返信数: 13
閲覧数: 864

Re: 正常にファイルを参照できず、悩んでいます。

23行目の入力を受けた内容を画面に改めて出力すると全く別の値になっていました。 デバッガを使えば画面に出力しなくても、値を確認することができます。 scanfの使い方そのものもあまり理解できていないのですがどのような関数で読み込めば数字12桁を正常に読み込むことが出来るでしょうか? scanf で12桁の文字列を取得するには char str12[12+1]; scanf("%s", str12); とすれば可能ですが、13文字以上を入力すると用意した領域を破壊してしまいますのでお勧めしません。 ファイルの入出力、文字列の出力にストリームを使用しているので、ここは入力ストリーム(cin)を使...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 正常にファイルを参照できず、悩んでいます。
返信数: 13
閲覧数: 864

Re: 正常にファイルを参照できず、悩んでいます。

maru さんが書きました:23行目、文字列を読み込むのに int 型の変数のポインタを指定しています。
実行時にエラーが発生するようなら、その時の変数の値を確認してください。
(エラーが発生しなくても変数、プログラムの流れを確認し、アルゴリズムが正しいかを確認するのが完成への早道。)
でも、このバグは変数を確認してもわからないかもしれませんね。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 正常にファイルを参照できず、悩んでいます。
返信数: 13
閲覧数: 864

Re: 正常にファイルを参照できず、悩んでいます。

いまだにインデントがそろっていないようですが...

23行目、文字列を読み込むのに int 型の変数のポインタを指定しています。
実行時にエラーが発生するようなら、その時の変数の値を確認してください。
(エラーが発生しなくても変数、プログラムの流れを確認し、アルゴリズムが正しいかを確認するのが完成への早道。)
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 正常にファイルを参照できず、悩んでいます。
返信数: 13
閲覧数: 864

Re: 正常にファイルを参照できず、悩んでいます。

つばさ さんが書きました:皆様の助言をいただきたいのでどうぞよろしくお願いいたします。
デバッグすればよいと思います。
つばさ さんが書きました:ほかにもコードの書き方でよくない点があればご指摘いただければと思います。
とりあえず、
1.インデントがそろっていない。
2.エラーチェックが一切ない。
3.コンパイルが通らないコードだ。
4.マジックナンバーを使用している。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語でリソースの練習をしています
返信数: 4
閲覧数: 628

Re: C言語でリソースの練習をしています

DLLのリソースをロードするにはDLLのインスタンスハンドルを指定する必要があります。
DLLのインスタンスハンドルはLoadLibraryEx関数で取得します。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体、配列、ファイル操作について
返信数: 3
閲覧数: 2043

Re: 構造体、配列、ファイル操作について

環境が書いていないので正確ではありませんが、ソースコード(*.c)と同じフォルダではだめでしょう。
実行ファイルが生成されたフォルダに置く必要があります。
(基本的には、実行ファイルはソースファイルがあったフォルダを知りません。)
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: C++におけるオブジェクト指向の理解
返信数: 5
閲覧数: 1075

Re: C++におけるオブジェクト指向の理解

本題ですが、オブジェクト指向とは具体的に言えば、 コンパイル実行可能なソースをincludeなどで呼び集めて大きな作品を作る? ということでしょうか。 違います。上記はライブラリが充実しているかどうかであり、オブジェクト指向とは全く別の要素です。 「オブジェクト指向」を google 君に聞いてみたら Wiki がヒットします。 この中で、「オブジェクト指向プログラミングの構成要件」として「カプセル化 (情報隠蔽)」と「ポリモーフィズム (多態性)」が挙げられています。 オブジェクト指向では、オブジェクトの動作はオブジェクト自身が知っていればよく、外部ではその動作がどのように実装されているか...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: C言語 ぽ
返信数: 4
閲覧数: 523

Re: C言語 ぽ

循環節の長さが除数より小さいことを考えると、除数の大きな数から小さい数への方向へ循環節長を計算し、それまでの最大循環節長が除数より大きくなったところで打ち切ってもいいんじゃないでしょうか。 // 引数の逆数の循環節を計算する int recurringLength(int n, int* pRemains) { int remain = 1; int* pRemain = pRemains; *pRemain = remain; while (remain) { int* p = pRemains; for (; p < pRemain; ++p) { if (remain == *p) { ...
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 配列をスキップする方法
返信数: 9
閲覧数: 2528

Re: 配列をスキップする方法

かずま さんが書きました:No.2 の box さんの回答で十分だと思うんですが。
その意見に激しく同意なのですが、自分のコードに固執していたようなので、修正版ということで。
by maru
1年前
フォーラム: C言語何でも質問掲示板
トピック: 配列をスキップする方法
返信数: 9
閲覧数: 2528

Re: 配列をスキップする方法

// 通常マクロは大文字では? #define n 3 int main() { int x, y, i; int skip[n]; puts("スキップする数を入力"); setvbuf(stdout, NULL, _IONBF, 0); for (i = 0; i<n; i++) { // 普段 scanf 系使わないので正しい使い方をよく分かっていないのだが、"%d\n" -> "%d" では? // VCでは"%d"だけにしないとだめ scanf("%d", &skip[i]); printf("%d\n", skip[i]); } for (x = 1; x <= 9; x++) ...

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