検索結果 149 件

by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C言語による制御系、組込み系のお仕事について
返信数: 39
閲覧数: 5542

Re: C言語による制御系、組込み系のお仕事について

ISLe さんが書きました:関数呼び出しのコスト以前に、組み込み系ではスタックが数KBしかない場合もあるので、無計画に再帰呼び出しするとすぐに暴走しますよね。
その通りです。だから、「再帰の深さ」って書いてるのに。。。
それ(スタックの消費)を含めて「再帰呼び出し」のコストと書いたつもりが、実際に投稿したのは「関数呼び出し」でした。
orz

【追記】
漢字まで間違えてるし。 修正しました。
「再起」⇒「再帰」
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C言語による制御系、組込み系のお仕事について
返信数: 39
閲覧数: 5542

Re: C言語による制御系、組込み系のお仕事について

自分で作成した作品で、気に入っています。(ご感想を頂けるとありがたいです) 再帰呼び出しの例で階乗を使っている書籍/文献が見られますが、実際のプログラムで階乗を再帰で計算することはないだろうと思ってました。 数学的には   n! = factorial(n) = n×factorial(n-1) なのでスマートですけど、単純に   n! = 1×2×...×n で十分に思えます。この程度の演算処理で再起を使って計算するのは、関数呼び出しのコストと見合わないと思います。 まあ、この辺りはセンスと言われればそれまでなんですけどね。 実際の仕事で再帰呼び出しを使用するときには、再帰の深さがどれくら...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++のオーバライド
返信数: 6
閲覧数: 322

Re: C++のオーバライド

意図していることがよくわからないのですが、元のプログラムの saList[1] = *SaList[1]; では sa のオブジェクトに対して sb のオブジェクトを代入してしまっています。 この場合の動作は... 言語仕様に詳しくないので、どうなるのが正しいのかよくわかりません。 もし、意図した動作が、 「派生されたクラスオブジェクトを派生元のクラスオブジェクト配列にいれて、派生元クラスとして動作させたい」 ということであれば、そのような動作をするコードは思いつきません。 あと、sa では a を public にする必要性はないように思われます。 private か protected で...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 大学の課題がわかりません
返信数: 5
閲覧数: 399

Re: 大学の課題がわかりません

条件が「非素数」であることがポイントかもしれませんね。
「エラトステネスのふるい」等で素数判定が必要です。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: c言語のポインタについて質問です。
返信数: 16
閲覧数: 1494

Re: c言語のポインタについて質問です。

ISLe さんが書きました:難読コードは丸投げ連投をこらしめるためじゃないんですかね。
私もそんなところだろうと思っているんですが、そのコードがいかにも優れているかのようなコメントには賛成いたしかねます。初心者がこれを見てこんなコードがいいんだと思われても困りますからね。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: c言語のポインタについて質問です。
返信数: 16
閲覧数: 1494

Re: c言語のポインタについて質問です。

l;print_rev(char*s){s+=l=strlen(s);while(l--)putchar(*--s);} // ookami 60byte print_rev(char*s){for(s+=strlen(s);*--s;putchar(*s));} // bitter_foxさん 54byte (難あり) print_rev(char*s){*s?print_rev(s+1),putchar(*s):0;} // かずまさん 51byte 今のところ、かずまさんのコードが一番短いですね! 再帰や三項演算子をフツーに使ってきてるあたり、手馴れた感が...w 短けりゃいいってもん...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: VisualStudio2010でのDLL作成について
返信数: 4
閲覧数: 6301

Re: VisualStudio2010でのDLL作成について

うーん、これだけの情報では何とも言ってみようがありませんね。

ただ、本当にVS2010なら
1> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
のversion部分は16.00.xxxxになっているはずです。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: c言語のポインタについて質問です。
返信数: 16
閲覧数: 1494

Re: c言語のポインタについて質問です。

先頭文字のひとつ前を参照してはいけませんし、そこに '\0' があるとも限りません。 よく見ていなくて、すみませんでした。calloc で余分に領域を確保しているんですね。 正しいご指摘だと思いますよ。関数の仕様にはそんな前提条件は書かれていませんからね。 いくら使用例でcalloc で余分に領域を確保していても、仕様は満足しません。 print_rev(char*s){*s?print_rev(s+1),putchar(*s):0;} これだと、グローバル変数も strlen() も使いません。 print_rev関数の型はintでしょうか?省略せずに書いた方がよいと思います。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割が上手くいきません
返信数: 7
閲覧数: 1455

Re: ファイル分割が上手くいきません

はんなり さんが書きました:開発環境は Microsoft Visual Studio 2010 professional です
ソリューションエクスプローラビューのソースファイルアイコンを右クリックして、[追加]-[既存の項目]を選択。
分割したソースファイルを指定します。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 最小公倍数・最小公約数についておしえてください。
返信数: 4
閲覧数: 1233

Re: 最小公倍数・最小公約数についておしえてください。

フリオ さんが書きました:>1.gcd関数は x > y である必要がありますが、チェックされていません。

 試してみればわかりますが、x < y でも while の最初の一回で x と y が入れ替わるので
問題ありません。
あれ、剰余演算子は除数の方が大きくてもいいんですね。いわれてみればそうですね。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル分割が上手くいきません
返信数: 7
閲覧数: 1455

Re: ファイル分割が上手くいきません

このタイトルだと、プログラムでファイルを分割することを考えてしまいますね。
分割コンパイルで検索すると幸せになれるでしょう。

方法はコンパイラに依存します。ソースファイルをコンパイルするときに複数のファイルを指定する方法や、
統合開発環境で指定する場合など、開発環境に依存するので、開発環境を書いてください。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 最小公倍数・最小公約数についておしえてください。
返信数: 4
閲覧数: 1233

Re: 最小公倍数・最小公約数についておしえてください。

最終的な最大公約数が求まるまでの途中過程を表示をしたいのですが、実行すると途中経過がうまく表示されていないようです。 うまく表示されていないとは、「どうなって欲しい」が、「今どうなっている」を説明しないと何とも言ってみようがありません。 m=24, n=20として実行してみたところ、 (m,n)=(20,4) (m,n)=(4,0) と表示されますが、引数として渡した (m,n)=(24,20) が表示されないことが問題なのでしょうか? それでしたら、while文に入る前に表示処理を入れる必要があります。 改善点をおしえてください。 1.gcd関数は x > y である必要がありますが、チェ...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル中のある特定の文字列の数行先の行の文字列を抜き出す
返信数: 4
閲覧数: 515

Re: ファイル中のある特定の文字列の数行先の行の文字列を抜き出す

たかぎ さんが書きました:メモリマップドファイルを使うという選択肢はないのでしょうか?
なるほど、その方が手軽ですね。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: BCC Developerによるcsvファイルの読み込み
返信数: 9
閲覧数: 733

Re: BCC Developerによるcsvファイルの読み込み

non さんが書きました:/でも大丈夫だと思うけど。
ですねぇ。

古い知識のままで、返信するとこんなことになっちまいますね。困ったもんです。 > 自分。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル中のある特定の文字列の数行先の行の文字列を抜き出す
返信数: 4
閲覧数: 515

Re: ファイル中のある特定の文字列の数行先の行の文字列を抜き出す

膨大とはどの程度のものでしょうか? 一度に全部メモリに載せることが出来るのか、できないのか? そこがポイントです。 MB以下であれば全部読み出して、文字列配列に行ごとに格納してから検索を行えばいいでしょう。 なお、サイズは環境によって替える必要があるでしょう。 メモリに載せられない場合、ファイルを読みながら検索するしかありませんが、検索文字列が複数あるの なら一行読みだすごとに、文字列検索を検索文字列数回繰り返すようにするなど、ファイルの読出し数は 最小回数になるようにしないと、性能面で問題になりそうです。 ところで、 int length = GetFileLength(fp_input);...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: BCC Developerによるcsvファイルの読み込み
返信数: 9
閲覧数: 733

Re: BCC Developerによるcsvファイルの読み込み

まさかとは思いますが、パスの区切り文字が間違っているなんてことはありませんよね?
"csv/enemy.csv" -> "csv\\enemy.csv"
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: BCC Developerによるcsvファイルの読み込み
返信数: 9
閲覧数: 733

Re: BCC Developerによるcsvファイルの読み込み

KOBA さんが書きました:BCC Developerを使ってcsvを読み込もうとしているのですが、うまく読み込めません。
どのように、うまくいかないんですか?
KOBA さんが書きました:原因がわかる方はいますか?
よろしくお願いします。
そのプログラムの実行時のフォルダ位置(ディレクトリ)と読み込もうとしているファイルの相対位置を確認してみてください。

ちなみに、FileRead_openはファイルを開くだけで、読み込むものではないと思いますが。...
まあ、詳細はうまくいかない内容を確認した後ということで。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: ご協力ください
返信数: 3
閲覧数: 322

Re: ご協力ください

ファイル内容を全て読み込んで改行で分割して配列変数に格納する。 全部読み込むということは300行を超えるという可変の行数を管理することになります。 2行ごとに読み込み、行を入れ替えて書き込むほうが簡単でしょう。 それでも1行の文字数が可変個なので、最大文字数を検討しておくことが必要でしょう。 #include <stdio.h> const size_t max_sting_length = 128; // 一行の最大文字数 int main() { int result(0); FILE* in_file = fopen("input.txt","r"); // 読み込みファイル FILE...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: ファイル読み込みの関しての質問
返信数: 5
閲覧数: 417

Re: ファイル読み込みの関しての質問

2つ目の質問は 『』 のプログラムを実現しようとしたときに、対象となるファイルの中身を一度すべて読み込む必要があるかどうか? ファイルの中身をすべて読み込む必要があるか?という問いに対しては、 最後まで読まないと対象のデータ全てを検索できないから当然「すべて読み込む必要がある」 という回答になります。 問題は「すべて」の前にある「一度」ということですが、真の問いは検索前に全部読み込んで メモリに保存しておくのか?、読み込みながら検索するのか?ということではないかと思います。 回答は、プログラムで検索するのが一回だけなら、読み込みながら検索するのがよく、一回の 実行で複数回の検索を実行するなら...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームプログラミングの館 入門編11について
返信数: 7
閲覧数: 257

Re: ゲームプログラミングの館 入門編11について

while 文の()の中は変数ではなく式です。別に変数を使った式を書く必要はなく、定数でもかまいません。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 要素数0の配列
返信数: 6
閲覧数: 7748

Re: 要素数0の配列

   int *p = new int [0];    p[0] = 10;    cout << p[0] << endl; などとすると実行できてしまいます.これはどういう仕組みなのでしょうか. 最初の文は要素数0の int 領域を確保して、そのアドレスを返します。 つまりメモリアドレスは返ってくるが、その領域は使えない(使ってはいけない) 2、3番目の文は、その使ってはいけない領域にデータを書込み、読み出しています。 動作したのは、たまたまです。運よくそのアドレスのデータは他に使用されていなかった為でしょう。 また,この使用法は問題ないのでしょうか. もちろん大問題です。こんな使い方を...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++でファイルのパッキングをしているのですが、うまくいきません
返信数: 6
閲覧数: 658

Re: C++でファイルのパッキングをしているのですが、うまくいきません

yucky001 さんが書きました:ありがとうございました。
無事できました。
10000バイト以上のファイルも読み込めるようにしました。
どうやって解決したのかを書いてみてください。
10000バイト以上のファイルといってもどのサイズまで可能でしょうか?
たまたま動いているだけということはないですか?
充分に大きなファイルであっても実行可能なアルゴリズムになっているか疑問です。

フォーラムルールにも「解決した方法を明記して下さい。」とあります。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++でファイルのパッキングをしているのですが、うまくいきません
返信数: 6
閲覧数: 658

Re: C++でファイルのパッキングをしているのですが、うまくいきません

突っ込みどころが満載のソースコードですね。 とりあえず、fread, fwriteの使い方が間違ってます。 char *Data[10000]; size=fread(Data,1,MAXSIZE,Graph); fwrite(Data,size,1,fp); ↓ char Data[10000]; size=fread(&Data,1,sizeof(Data),Graph); fwrite(&Data,size,1,fp); で動作しました。 ただし、個々のファイルサイズは10000バイト以下です。 10000バイト以上になる場合、繰り返しが必要です。 #define MAXSIZE 101...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 最大値を求めるのに・・・
返信数: 10
閲覧数: 1198

Re: 最大値を求めるのに・・・

box さんが書きました:最大値の初期値が0で決めうちっていうのは、ちょっとまずいかもしれません。

私だったら、
a = in[0];
として、1~9のループを構成しますね。
ですね!
つい、データは0以上という仮定を置いてしまいました。
ループ範囲を0~9にするなら初期値は INT_MIN にすべきでした。

ループを1~9からにしていないのは配列範囲の一部を特別処理にするのが嫌だったからですが、
この程度の処理なら問題はないでしょうね。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 最大値を求めるのに・・・
返信数: 10
閲覧数: 1198

Re: 最大値を求めるのに・・・

Cielさん以外の方は配列の添字に注目していますが、問題はそれだけではありませんね。 添字を修正しても while(ns < 9) { if(in[ns+1] >= in[ns]) { a = in[ns+1]; } ns++; } これでは前後のデータを比較しているだけですよね。 それまでの最大値(a)と比べなければダメでしょう。 a = 0; for (int i = 0; i < 10; ++i) { if (in[i] >= a) { a = in[i]; } }
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 別スレッドを監視する処理
返信数: 2
閲覧数: 349

Re: 別スレッドを監視する処理

basuku さんが書きました:お世話になります。
下記の場合、別スレッドが終わるまでウェイトするにはどんな処理にしたらいいでしょうか?
別スレッドの質問は解決されたようですが、何が違うのでしょうか?
http://dixq.net/forum/viewtopic.php?f=3&t=8051
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 一纏めにした圧縮ファイルからの読み取り
返信数: 2
閲覧数: 215

Re: 一纏めにした圧縮ファイルからの読み取り

「圧縮ライブラリ」で検索をするといろいろなサイトが見つかります。

そこから、一つ紹介。
http://www.csdinc.co.jp/archiver/lib/extents.html
いろいろなエンジンがライブラリの形で提供されています。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: アクションゲームのジャンプについて
返信数: 6
閲覧数: 1076

Re: アクションゲームのジャンプについて

オーカー さんが書きました:ああなるほど
わかりました
本当に理解出来たのでしょうか?でしたら前のコードをどのように変えたのか書いてみてください。
フォーラムルールにも
また、解決した時は、「解決しました」とだけ言って去らず、ソースコードや解決した方法を明記して下さい
とあります。
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: 敵が消えてしまいます・・・
返信数: 2
閲覧数: 286

Re: 敵が消えてしまいます・・・

ゲーム中に突然敵がきえてしまいます。 なぜきえるのかがぜんぜんわかりません・・・。 どうすればいいのでしょうか。 お願いします デバッグ作業の丸投げでしょうか? こんな長いコードを見ただけで間違いを見つけることが出来る人はそうそういませんよ。 プログラムが自分の思った通りに動かない場合、ソースファイルを見るだけで原因を特定し対策するのは非常に困難です。 まず、起きている現象を整理し、原因を突き止めて、その後対策を行います。 「突然」は本当に突然ですか? 再現性はありますか?再現性が或る場合、その条件を特定しましょう。 再現性がない場合、その再現性を見つけるようにしましょう。 何か操作をした時...
by maru
8年前
フォーラム: C言語何でも質問掲示板
トピック: アクションゲームのジャンプについて
返信数: 6
閲覧数: 1076

Re: アクションゲームのジャンプについて

y_pが前回の座標を保存しています。
14, 17, 21行でのJump呼び出し時にy_pの値がいくつになっているかを考えましょう。

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