1 名前:デフォルトの名無しさん [2008/04/29(火) 09:44:57 ] 言語の入門者向け解説スレです。 ・C++言語はスレ違いです。 ・分からない事をなるべく詳しく書いて下さい。 ・ソースコードを晒すと答えやすくなるかもしれません。 ・質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 前スレ C言語なら俺に聞け(入門篇) Part 26 pc11.2ch.net/test/read.cgi/tech/1206196600/ 過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 教えて欲しいのではなく丸投げしたいならこちらへ C/C++の宿題を片付けます 105代目 pc11.2ch.net/test/read.cgi/tech/1208268461/
445 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:09:35 ] マクロを使うと一見上級者のようでかっこいいんだけどね 地道に関数でということかな
446 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:12:57 ] ふっ、例えポルシェやBMWを運転していようが、軽自動車を運転していようが 同じ道路交通法が適用されている道で守るべきルールは同じさ。 それよりも、ドライバーの運転技術はいかがなものか?他に、 アクセルペダルを思いっきり踏み込めば、エンジンの性能が良い車の方が 加速性は良いが、燃費はかなり悪い。見た目じゃないぜ、人間は。
447 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:15:20 ] ええいお前のたとえは分かりにくい
448 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 22:35:14 ] linuxのコンソール上でカーソルの処理を行いたいのですが、 カーソルの処理には何を使ったらいいのでしょうか? ncursesはできれば使いたくないです。 ttp://oshiete1.goo.ne.jp/qa3121681.html の方法だとカーソルキー押す度に"[b"などと出力されてしまいます。 よろしくお願いします。
449 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:12:49 ] >434 型を気にしないプログラムがどうなるのか?コンパイラが事前に警告してくれるのはありがたいと思わないと。
450 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:21:56 ] >>434 昔な、変数を宣言しなくても使えるBASICてのがあってな、綴りのミスを目で探したよ。・ 昔な、プロトタイプ宣言のないCコンパイラがあってな、引数の間違いを目で探したよ。
451 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:23:27 ] FORTRANなら普通の事です
452 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:25:14 ] >>445 マクロ使っても全然上級者には見えないから安心して関数を使おう
453 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:28:26 ] 可読性、保守性の高いソースを書く人のほうが上級者に見える。 まあマクロはその手段の一つなんだけれども。
454 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:31:13 ] 浮動小数点の定数って定義できるんだっけ? C++でも未だにマクロ使ってるんだけど
455 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:35:27 ] 別に定数を定義することくらいはできるけど。 ただ、初期化順でハマることはあるかもしれないね。
456 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:37:42 ] voidポインタの参照先はビットシフトできないのかな?
457 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:40:54 ] >>456 void*をint*にキャストしてシフトすれば?
458 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:43:20 ] >>456 何ビット幅でシフトしたいかをコンパイラが判断できない。必要な幅の型のポインタにキャストする必要がある。
459 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:57:36 ] キャストしたらできた! これって任意のバイト数を指定することはできないのかな? mallocで指定しても駄目だったし無理か・・・
460 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 23:59:21 ] >>459 > これって任意のバイト数を指定することはできないのかな? 意味不明
461 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:16:42 ] void*の参照先を任意のビット幅としてビットシフトしたいんです
462 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:18:04 ] 自分でそういうプログラム書け。
463 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:26:54 ] >>461 それ、何のデータ?
464 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:28:38 ] ビットシフトすりゃいいじゃん。
465 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:35:13 ] >>463 void*の参照先ですか? intとかcharとか不定です void*とsize_tを仮引数にして、型に関係なくビット表示するような関数を作りたいんですが・・・
466 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:38:59 ] とりあえずバイトオーダをはっきりしておかないとな。 リトルエンディアン環境の場合、数十バイトだろうが その全体でリトルエンディアンになることを仮定していいのか、 それとも4バイト単位でリトルエンディアンになることを仮定するのか。
467 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:44:48 ] >>465 char*にキャストして一バイトごと表示しろよ
468 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 00:51:12 ] >>466 リトルエンディアンだとおもう よくわからないから続きはwebで勉強してくるわ >>467 おk試してみる
469 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:05:04 ] >>461 できない ビットシフトは組み込み整数型(のビット長)に対してしか保証されていない どうしてもやりたいなら自力でそのような関数を作るしかない
470 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:11:23 ] キャストすればいくらでもできるだろ・・・。
471 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:16:35 ] >>470 んなアホな charに分割したとしても、左右両端からあふれたビットは結局手動で詰めざるを得ないだろ
472 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:20:12 ] もしかしてデータ圧縮なんかで使うビットごと入出力でも作ってんのかな それだったらlhaの解説書見れば早いと思う
473 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:27:33 ] >>471 結局できるんじゃないか
474 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:39:36 ] >>473 「ビットシフト」の言葉の食い違いだったようだ 俺が考えてたのは組み込みのビットシフトのことね そっちは概念としてのビットシフトだよな
475 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 01:41:10 ] > 組み込みのビットシフ なんじゃこれは?ト
476 名前:デフォルトの名無しさん [2008/05/08(木) 02:38:42 ] プロトタイプ static void mera(const char *); このとき 1) void mera(const char *merami) 2) void mera(const char* merazooma) 1だけのはずが 2のようなものも通ってしまうのはどうして? どちらでも良いという意味ならば、どちらが推奨なの? また、 static void bagi(const char ****); このとき 1) void bagi(const char ****bagima) 2) void bagi(const char**** begiragon) どちらも警告W8075程度で通してしまうのはどうなの? BCC5.5.1
477 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 02:57:27 ] >>476 > 1) void mera(const char *merami) > 2) void mera(const char* merazooma) 1) は C に多く、2) は C++ でみます。 どっちでも大差ないと思います。
478 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 02:59:49 ] スペースがあるかないかだけじゃん。何で違うものだと思うの?
479 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 03:00:44 ] >>477 おお、ありがとう。
480 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 03:20:48 ] >>476 char *p も char* p も意味は同じ スタイルについては、変数の宣言時にたとえば char* p, * q; などとするのが不自然という理由で char *p, *q; を推奨する人は多い
481 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 03:31:59 ] 追記 一方で char* p; を推奨する人は、変数名はあくまでpであるから それがchar*であることを示すためにそうすると主張することが多い ただし*はcharやint、あるいはstaticやconstのようにデータ型を修飾するものではなく あくまで変数を修飾するものである(Cの変数宣言構文は [データ型] [変数名]; だから int const n, m; とは書けても char* p, q; とは書けない)ので、 構文的には変数名側に寄せることが正しい扱いであると言える
482 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 03:37:26 ] ×ただし*はcharやint、あるいは ○ただし*はcharやintのようなデータ型、あるいは
483 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 04:08:15 ] もちろんスタイルの話だから、君はchar* pと書いてもいいし、char *pと書いてもいいし、さらにはchar * pと書いてもいいし、 また関数の仮引数リストにおいては与えられるものがおそらく配列である場合には、それを明示したいならchar str[]と書いてもいい
484 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 04:16:42 ] たくさんのレスありがとう、勉強になりなす。
485 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 07:37:37 ] >>476 ×begiragon ○bagicross なんで誰も指摘しないんだよー
486 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:10:17 ] >>448 エスケープシーケンスを正しく読めばいいんじゃないかな 確か0x1bだったっけ? この次の文字は制御文字だから、それに応じた処理をすればいい。 カーソル位なら入力されたコードをじっくり眺めればすぐに分かると思うよ
487 名前:448 mailto:sage [2008/05/08(木) 19:42:21 ] >>486 そうだったのかー!! あれはエスケープシーケンスと制御文字が組み合わさってたん ですね。だからあのプログラムで[Aとかが表示された訳だ。 どうもです。
488 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:43:21 ] XPでコンソールのカーソルを移動させるにはどうすればいいの?
489 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:46:04 ] スレ違い
490 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 19:46:11 ] >>488 msdn.microsoft.com/ja-jp/library/cc429740.aspx
491 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:34:04 ] mallocして帰ってきたポインタをfreeするとメモリを開放するらしいのですが、 freeにサイズを書かなくてなんでサイズがわかるんでしょうか。 #include <stdio.h> void main() { char *c; c = malloc( 10 ); if( c == NULL )return; strcpy( c , "aiue" ); c--;//ひとつ前のポインタ(サイズは書いていないようだ) c--;//ここにもサイズはない c++;c++;//元に戻す free( c ); c = NULL; return; }
492 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:38:08 ] >>491 管理テーブルが別にあるから
493 名前:491 mailto:sage [2008/05/08(木) 21:52:55 ] >>492 ポインタの前ではなくほかのところにあったんですね。 どうもありがとうございました。
494 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:04:26 ] どうでもいいけど、ポインタを戻すのはよろしくないんじゃね?
495 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:13:52 ] 実際に確保されていることが確実な範囲(+1)を超えた演算の結果は保証されてなかった気がする
496 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:40:41 ] >>492 ちなみに確保した前の番地に文字数があるのでは?と仮定してそれを確認するなら int* ip = (int*)c; long* lp = (long*)c; こうしておいて printf("%d : ", *(ip - 1)); // c 先頭から int 分戻った場所から数値として表示 printf("%ld : ", *(lp - 1)); // c 先頭から long 分戻った場所から数値として表示 こんな風に確認するというのもあるよ(どちらにしても結果は外してるけど)
497 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:50:03 ] >>493 > ポインタの前ではなくほかのところにあったんですね。 それは処理系依存。 ポインタの前にある場合もあるだらう。
498 名前:デフォルトの名無しさん [2008/05/08(木) 23:11:55 ] じゃああんま頻繁にmallocすると、逆に管理テーブルのぶんムダ使いになるんですかね??
499 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:13:38 ] 管理テーブルを保持することよりも、 空きメモリを探す処理とfreeの分、 CPU時間の無駄遣いになることを気にしたほうがいい気がする。
500 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:22:31 ] ということはlinked listとかすごい効率悪いんだな・・・ ところでポインタのサイズ管理テーブルへのアクセスってどうやるの?
501 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:23:16 ] 実装によるとしか mallocのソースでも眺めてみれ
502 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:25:09 ] 入門書クリアしたら次は何がいいかな? アルゴリズム辞典とか眺めるの?
503 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:29:09 ] linked list はスタック上にメモリをプールしておけばいいぜ。
504 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:29:32 ] ×スタック上 ○スタック状
505 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:50:05 ] >>502 良いソースを読むことだと思う どの言語でも同じだと思うが
506 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 01:55:07 ] 何か作りたいものがあるから学んでいるのでは? それを作るのにまだ足りないものがあるならそれを学べばOK 足りてるなら作ろう
507 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 13:06:55 ] 実際に自分の目的とするものを作ること その過程で、どのようにすれば目的を達成できるのかを考える能力を身に着けること 言語仕様がわかってても要求を実現できない新人多すぎ コーダーじゃねぇんだからさ
508 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 17:58:14 ] 0か1を要素にもつN次元のベクトルv(Nビットの情報ベクトルv)を入力した時 N個の要素はそれぞれ、確率pで0は1に、1は0に変わってしまい、また確率eで情報が消失する。 (消失した情報は2を代入すればよい) 上記の手続きを行い、画面にベクトルv'を出力(消失した要素はXを出力) というプログラムを整数の配列と擬似乱数で作りたいんですが、↓では数字がおかしくなってしまいます。 環境はunixのgcc 4.0.2です、初心者ですがご指導よろしくお願いします。 なお、ここではN=5、e=0.05、p=0.1としています。 #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 5 ; int main(void) { int v[N], u[N] ; int i ; float e, p, x ; for (i = 0; i <= N-1 ; i++ ) { printf("v[%d]=",i) ; scanf("%d",&v[i]) ; while (v[i] && v[i]!=1) { printf("v[%d]=",i) ; scanf("%d",&v[i]) ; } }
509 名前:508続き mailto:sage [2008/05/09(金) 17:58:40 ] p = 0.1 ; e =0.05 ; for(i = 0 ; i <= N-1 ; i++) { srand(time(NULL)); x = (float)rand()/ 32768.0 ; /* xは0以上1未満の乱数 */ if( x < p ) { u[i] = (v[i]+1) % 2 ;} /* xが0以上p未満の時、受信に誤りが生じる */ else if( x >= p && x < p+e ) { u[i] = 2 ;} /* xがp以上p+e未満の時、情報は消失(2を代入) */ } printf("(") ; for(i = 1 ; i <= 7 ; i++) { if (u[i] == 2) printf("X ") ; else printf("%d ",u[i]) ; } printf(")\n") ; return 0 ; }
510 名前:509訂正。失礼しました mailto:sage [2008/05/09(金) 18:01:25 ] p = 0.1 ; e =0.05 ; for(i = 0 ; i <= N-1 ; i++) { srand(time(NULL)); x = (float)rand()/ 32768.0 ; /* xは0以上1未満の乱数 */ if( x < p ) { u[i] = (v[i]+1) % 2 ;} /* xが0以上p未満の時、受信に誤りが生じる */ else if( x >= p && x < p+e ) { u[i] = 2 ;} /* xがp以上p+e未満の時、情報は消失(2を代入) */ } printf("(") ; for(i = 0 ; i <= N-1 ; i++) { if (u[i] == 2) printf("X ") ; else printf("%d ",u[i]) ; } printf(")\n") ; return 0 ; }
511 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:31:39 ] >>508 srand をループで毎回実行しない。最初の1回だけで良い。 32768.0 などという数字を直に書かず、(RAND_MAX+1.0) と書く方が良い。コンパイラによって rand() の最大値は異なる。 x<p でもなく x>=p && x<p+e でもない場合、u[i] の値は?
512 名前:508 mailto:sage [2008/05/09(金) 18:36:04 ] >>511 その場合u[i]は変化しません。 擬似乱数間の扱いが違ってましたか、勉強になります
513 名前:508 mailto:sage [2008/05/09(金) 18:38:06 ] あ、変化しないんだから u[i] = v [i] ; ですね。なんという初歩的なミス、ありがとうございました。
514 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:47:04 ] 久々に突っ込みどころ満載なコードを見た気がする
515 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 19:57:02 ] >>502 pc11.2ch.net/test/read.cgi/tech/1209810861/ で手伝っていただけるとありがたいのですが、いかが?
516 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 21:39:27 ] 皆さんに伺いたいのですけど、 www.amazon.co.jp/Programming-Language-Version-Prentice-Software/dp/0131103628 C言語の決定版と言われるこの本、どうお考えでしょうか。 あと、これのC++版ありますが、ページ数が思いっきり増えてますよね。 こちらもできたら評価をお願いできればと思います。
517 名前:デフォルトの名無しさん [2008/05/09(金) 22:54:01 ] 本はいらないよ ネットのほうがいい それに基礎いくらやってもWindows(UNIX)アプリは作れない。 標準Cの数倍以上の分量はこなさないと無理。標準は共通部分だけの勉強だけ
518 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:06:49 ] >>516 それ買っておきなさい。 ネットのは怪しいのが多い。 しかし洋書はたけえな。
519 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:09:36 ] >>516 お前がどうしたいのかによる、まぁその本は教養というか理解が深まるとかそういうのだ
520 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 23:43:44 ] >>516 スレチだけど、洋書は輸出費を考慮しても.comの方が安い場合があるぜ。 時間と多少の手間を気にしないんならこっちもチェックしておくといい。 ttp://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=sr_1_1?ie=UTF8&s=books&qid=1210344092&sr=8-1
521 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:04:24 ] C言語そのものはとてもシンプルだと言うこと #include によってもたらされる先輩方の資産と情報に振り回されない 目的をもってプログラムに取り組む ・・・ 例えて、辞書を丸暗記するのか、あるいは目的を持って辞書を引くのか・・というのに通じると。 ライブラリ群の知識や使い方に重点を置くより「こうしたい関数は無いか?」とする切り口の方がいいのではないかなと。 どちらにしても有る程度は知識得ないといけない訳だけど。
522 名前:デフォルトの名無しさん [2008/05/10(土) 00:05:42 ] 自分見やすい(辞書)サイトを保存しておいて、AND OR NEARなどで全文検索しようぜ
523 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:06:11 ] >>516 それは初心者向けでも玄人向けでもない微妙な本なんであんまりすすめない 推薦図書スレ>ttp://pc11.2ch.net/test/read.cgi/tech/1209441159/l50 感想スレ>ttp://pc11.2ch.net/test/read.cgi/tech/1064681919/l50
524 名前:デフォルトの名無しさん [2008/05/10(土) 00:10:00 ] たとえば、空き実メモリの容量を知りたければ、 メモリ 容量 などで検索する。
525 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:14:21 ] シンプルに見えて実はぐちゃぐちゃ それがC
526 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:16:21 ] Cをちゃんと理解したかったら、コンパイルした先のアセンブラと対比させるのが一番だと思う。 それが可能なのがCの最大の利点であり最大の欠点だから。
527 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 00:20:16 ] まず独習かダイテルあたりのしっかりした入門書で基礎仕様の理解を押さえる その上でひたすら「目的意識を持って」コードを書きつつCFAQを流し読めば十分
528 名前:516 mailto:sage [2008/05/10(土) 08:23:53 ] レス色々ありがとう。 自分はプログラミングはちょっとやったことありますが、C言語に ついてはさっぱりです。プログラミング言語Cがあれば何もいらない、 って話を聞いたんですけど、ちょっと古い本だしどうなんだろうなぁと。 だけど、薄い本なんで、これでC言語が概観できるというなら欲しいと 思ってます。 >>523 こういうスレがあったんですね。ありがとうございます。
529 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 11:02:19 ] ただの趣味だからって、効率悪くてもなるべく自作するようにしてる俺エドモンド本田
530 名前:デフォルトの名無しさん [2008/05/10(土) 16:04:28 ] 複数行文字列(100行以上)を標準出力に書き出す際、 \ で複数行まとめて書くとインデントが使えず見辛い。 別の方法を考えたところ 1) printfで一行ずつ printf("黒い0服\n"); printf("お茶を1杯\n"); 2) fputsで一行ずつ fputs("赤い2んじん\n", stdout); fputs("橙色の3かん\n", stdout); 3) 配列に格納してwhile puts char *memo[] = { "黄色い4んごう", "五月みどり", "" }; char **memop = memo; while(**memop) puts(*memop++); (1) や (2) は解かりやすいが、(3) の方が見やすい。 ただ (3) のままだと宣言初期化時しか格納できない。 ・分岐後に文字列を格納したい。 ・strcpy は使用を控えたい。 悔しいのでスマートな書き方教えてくれ。
531 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:07:53 ] printf("黒い0服\n" "お茶を1杯\n"); でいいよ
532 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:08:31 ] 別のテキストファイルにして読み込む マジおすすめ
533 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:09:19 ] あぁでもprintfに直接文字列は推奨されないよ %入ってるとまずいからだけど
534 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:12:28 ] putsでいいだろ
535 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:26:36 ] そこでfputsですよ
536 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:37:01 ] ABC & 上記の様にバックグラウンドプロセスABC に、パラメータを与えて実行させるのは どの様にすればいいのですか?
537 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:43:21 ] それはシェルの役目
538 名前:デフォルトの名無しさん [2008/05/10(土) 16:45:35 ] >>531 あぁ , 無しで繋げられるのだっけか。 でも , をつけてしまいやすいので使い方だけ覚えとく。 >>532 ,533 メモっとく。 >>534 puts("青6し"); puts("むらさき7ぶ"); か puts( "むらさき7ぶ\n" "灰ヤー" ); のような感じか。 もう少し考えてみるわ、サンクス。
539 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:50:35 ] 本題より例文が気になって仕方がない。むらさきしちぶ?
540 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 16:54:17 ] 抵抗のカラーコードの語呂合わせだろ。 俺は「青二才のろくでなし」って覚えているんだけど。
541 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:44:45 ] 失礼しms。 ttp://www.uploda.org/uporg1415339.c.html 上記のようなコードを書いたのですが、 bの領域を解放するときに ”Windows によって aaaaa.exe でブレークポイントが発生しました。ヒープが壊れていることが原因として考えられます。aaaaa.exe または読み込まれた DLL にバグがあります。” のようなエラーが出てしまいます・・・。。。 確保していない領域にアクセスし、それをフリーしようとしたときにおこるエラーみたいなことがググったら書いてあったのですが、 double** b; が確保されている領域と、callocで追加確保された領域が連続でないということでしょうか? またそのせいでこのエラーがおこっているのでしょうか? ご教授願います。よろしくお願いします。。。
542 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 18:50:19 ] >>541 > memmove(b, a, sizeof(a[0])*sizeof(a[0][0])); これのせいで同じ領域を二回 free している
543 名前:541 mailto:sage [2008/05/10(土) 20:38:45 ] >>542 memmoveだとだめなのでしょうか?
544 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 20:42:06 ] >>543 何がやりたいかによる a[y][x] に格納されている double の値をコピーしたいのであれば for(y=0;y<N;y++) memmove(b[y], a[y], N*sizeof(a[0][0]));
545 名前:541 mailto:sage [2008/05/10(土) 20:45:19 ] やりたいことはその通りなのですが、今の状態だとポインタをコピーしてる状態ということでしょうか?