トップページ⇒tech
1001コメント330KB

【初心者歓迎】C/C++室 Ver.54【環境依存OK】

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2008/05/14(水) 01:00:02
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.53【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1208989385/l50
【アップローダー】(質問が長い時はココ使うと便利)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0951デフォルトの名無しさん2008/06/14(土) 09:52:47
てst
0952デフォルトの名無しさん2008/06/14(土) 10:02:22
>>942
インデントを気にするくらいなら、アップローダを使えばいい。
>949のような専用ブラウザも使わない阿呆は放置でいいからね。
0953デフォルトの名無しさん2008/06/14(土) 10:13:59
専ブラ使わないやつはもれなく阿呆ですかそーですか
0954デフォルトの名無しさん2008/06/14(土) 10:36:01
その点は間違いない
0955デフォルトの名無しさん2008/06/14(土) 10:37:02
>>952
>専用ブラウザも使わない阿呆は
専ブラは全て同じ仕様だと思ってる阿呆ですか。
文句なら壷作ったマァブ達に言ってくれ。
0956デフォルトの名無しさん2008/06/14(土) 11:42:08
んじゃ、訂正しておこう。
専用ブラウザも使わない、或いはインデントごときで駄々を捏ねる阿呆ってことで。
ちょっと手元のエディタにコピペして、インデント掛けさせるだけのことができないってどんだけかと。
0957デフォルトの名無しさん2008/06/14(土) 12:18:43
で、それがこのスレと関係あるのかな
【初心者歓迎】C/C++室 Ver.54【環境依存OK】だろ
スレとは関係無い所であおってばかりだな
何のスレかよく考えろよ
0958デフォルトの名無しさん2008/06/14(土) 13:20:00
「インデントごときもかけない質問者」なんて思われたくないんで、俺は質問する時全角スペースインデントするよ
0959デフォルトの名無しさん2008/06/14(土) 13:26:48
>>956
お前の頭にはemacsしか無いのかもしれないが、
多くの環境で、自動的にインデント掛けるより
全角空白を半角空白に置換する方が容易。

また、コピペするまでも無く読みやすい。
専ブラなどの余計な前提無しにな。

少なくとも、その程度のことも分からないお前に
阿呆と呼ばれる筋合いは無いな。

ちなみに質問者がロダにも上げず、半角空白のまま
貼ったとしても責める気は無いし、責めたことも無い。
より良いという話をしているだけだ。
0960デフォルトの名無しさん2008/06/14(土) 13:29:18
初心者歓迎スレだから、初歩的な質問がどうしても他より多くなる。
で、初心者って、例を最少にする技術がまだまだだから、貼るソースが長くなりがちだし、
書き方も洗練されていないから、内容的に読み取りづらかったりするよね。
つまり、初心者歓迎スレであるが故に、「要所を押さえた貼り方をしなかった時の害」が、
通常より大きいってことなんだ。

つまり、ここが
【初心者歓迎】C/C++室 Ver.54【環境依存OK】
であるから、こういう話が通常より濃く交わされる、というのは、少なからず言える。

>>957
だから、関係関係と連呼するほど、関係無くはないんじゃないかな。
0961デフォルトの名無しさん2008/06/14(土) 13:53:19
初心者に「インデント」だの「全角空白」とか言っても通じないから、
アップローダをつかってもらうの推奨ってことでおk?
0962デフォルトの名無しさん2008/06/14(土) 13:55:10
まあ初心者歓迎と書いてある以上は全角スペースだろうが半角スペースで消えようが妥協して嫁ってことでいいだろ
0963デフォルトの名無しさん2008/06/14(土) 14:07:35
質問です
VC2008で_CrtSetDbgFlagを使い、メモリリークのチェックをしたところ

Detected memory leaks!
Dumping objects ->
f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c(593) : {4} crt block at 0x003D3728, subtype 0, 544 bytes long.
Data: < > 02 00 00 00 A4 03 00 00 01 00 00 00 11 04 00 00
f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c(136) : {2} crt block at 0x003D2110, subtype 0, 2048 bytes long.
Data: < > FE FF FF FF C1 0A 00 00 00 00 00 00 00 00 00 00
f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c(394) : {1} crt block at 0x003D1EC0, subtype 0, 532 bytes long.
Data: <X > 58 12 00 00 FF FF FF FF 00 00 00 00 00 00 00 00
Object dump complete.

とメモリリークが検出されたんですが、
1.出力されたディレクトリのパスに自分のソースもVCのソースも入ってない
2.上記3つのソースはVCのディレクトリに入っていたので、ここがメモリリークの原因だとは思えない

この2つの理由から対処に困っています。
この場合どうすればいいのでしょうか?
OSはXPです。
0964デフォルトの名無しさん2008/06/14(土) 14:17:30
空白が消えるのは2ちゃんの仕様ですでいいだろ
0965デフォルトの名無しさん2008/06/14(土) 14:29:17
>>963
_CrtSetDbgFlagの下で_CrtSetBreakAlloc(4)とかやってみる
0966デフォルトの名無しさん2008/06/14(土) 14:30:06
>>963
_CrtSetBreakAlloc
呼び出し履歴
0967デフォルトの名無しさん2008/06/15(日) 00:29:38
>>959
おおむね同意。
置換だけならXP以降のメモ帳でもできるしね。

補足として、再インデント可能なエディタは割と多いですよ。
元がトラップ気味なインデントであることを考慮すると再インデントして
読むようにしてます。
if (hoge)
   A;
   B;
みたいなね;-)
0968デフォルトの名無しさん2008/06/15(日) 00:38:59
全角空白インデントよりは、インデントなしのほうがいい。
とりあえずそのままコンパイルできるから。

逆に言えば、VC++とかGCCが全角空白を受け付けてくれるようになれば、
全角空白でも別にいいと、俺は思う。
0969デフォルトの名無しさん2008/06/15(日) 00:40:08
>>968
makefile を使うのはどうだろう?
0970デフォルトの名無しさん2008/06/15(日) 00:41:12
俺は空白は&nbsp;に置換してるんだけどこれで困る人いる?

コピペったときにU+0160になってしまうようだと困るのかなと
思うのだけれど
09719632008/06/15(日) 00:42:03
>>965-966
無事場所が分かりました!
mapのinsertの中でメモリリークが起きていました。
ただ、mapには120個くらいデータを挿入しているんですが、
メモリリークが起きるタイミングがまちまちで、メモリリークの合計が3回ということもあり、今一原因が分かりません。
オーバーフローが起きていると考えていいのでしょうか?
mapはmap<wstring, list<wstring> >で宣言してあります。
0972デフォルトの名無しさん2008/06/15(日) 00:56:12
>>971
> オーバーフロー

なんで?
0973デフォルトの名無しさん2008/06/15(日) 01:02:07
>>970
わざわざそうするならうpすればいいのに。
検索エンジンに引っかかるように、あえてスレにソースを載せたいのかな?
0974tst2008/06/15(日) 01:21:27
none
    1tab
        ;2tab

>>974

専ブラのレス参照では参照されなかったりする
0975デフォルトの名無しさん2008/06/15(日) 01:22:13
>>973
2chに貼り付けるのは、数行のコードだからねぇ
「わざわざ」ってのは、意味が分からないな
それこそ、「わざわざ」手で置換するわけがないでしょ?
プログラマ板の住人ならさ
0976デフォルトの名無しさん2008/06/15(日) 01:22:31
一番の問題はコピペ時にスペースにならんところか
0977デフォルトの名無しさん2008/06/15(日) 01:31:43
&#32;[ ]
NBSP(U+A0)つかわないでも、普通のSPでいいでしょ。
0978デフォルトの名無しさん2008/06/15(日) 01:35:42
言われてみればそうだな、今後はそうしよう
0979デフォルトの名無しさん2008/06/15(日) 01:39:00
おっぱい
おっぱい
おっぱい
0980デフォルトの名無しさん2008/06/15(日) 01:41:28
インデントを全角空白に置き換えるってどうやんの?
0981デフォルトの名無しさん2008/06/15(日) 01:41:55
置換すらできないのか
0982デフォルトの名無しさん2008/06/15(日) 01:43:43
いや、置換はできるけど、行頭の空白orタブを相当数の全角空白に置換ってどうやればいいのかなって。
0983デフォルトの名無しさん2008/06/15(日) 01:45:56
ああ、深く考えなくてもTABを全角空白に変えてるのか。
開発対象によってはスペースでインデントすることもあるから妙に気にしてしまった。
0984デフォルトの名無しさん2008/06/15(日) 01:48:27
s/\t| {4}/ /;
とかでいいんでねえの。
インデント以外でスペース4個以上の連続なんてそうそう出てこないだろ。
0985デフォルトの名無しさん2008/06/15(日) 01:49:53
>>971
newしてるような箇所は無いのか?
mapにwstringにlistだと問題なさそうだけど
0986デフォルトの名無しさん2008/06/15(日) 01:52:12
>>982
俺はこんな感じのやつをviから%!で噛ませてる
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6908.zip

バイト数=文字幅とは限らない環境でマジメにタブを開くには、
EAST_ASIAN_WIDTHとか見る必要があると思う
0987デフォルトの名無しさん2008/06/15(日) 02:00:05
>>986
ふぅむ。
タブインデントを空白インデントにするだけならvimで
:set et
ggVG=
ってやってる。
0988デフォルトの名無しさん2008/06/15(日) 02:06:26
>>987
で、その後で空白を全部エンティティ参照に置換するとレス長が無駄に長くなるので、
置換をなるべく押さえた上で一発で仕事が済むようにプログラムを書いたわけですよ

まあ馬鹿げてるとは思うが
0989デフォルトの名無しさん2008/06/15(日) 02:09:22
単純に、"SPSP"の連続を"&#32;SP"に置換すればいいだけなんじゃ。
0990デフォルトの名無しさん2008/06/15(日) 02:16:01
>>989
行頭だけは特別扱いする必要あるけど、
1) タブを開く
2) 行頭のSPを&#32;に置換
3) SPSPを&#32;SPに置換
でいいのかな
0991デフォルトの名無しさん2008/06/15(日) 02:38:01
ああ、奇数タブならそういう必要も出てくるんかな。よくわからんけど。
0992デフォルトの名無しさん2008/06/15(日) 02:40:45
>>991
いや、行頭に空白一文字だけあるときに潰れてしまうことだけが問題
書いてから気づいたが、2)と3)は逆順のほうがいいな
0993デフォルトの名無しさん2008/06/15(日) 02:43:02
タブを&#32;SPあるいはその繰り返しの並びに直接置換したらダメなの?
もちろん、必要に応じて空白から&#32;SPの並びへの置換もやるとして。
0994デフォルトの名無しさん2008/06/15(日) 02:46:05
>>993
タブ位置が行頭以外の場合、いくつの空白に置換すべきかが自明ではないでしょ。
だから、「きちんと」タブを開いてから空白だけを処理したほうが楽だと思う。

Unixのexpandコマンドは、バイト数=文字幅が成り立たない環境では
役に立たないものがほとんどだと思うけれど。
0995デフォルトの名無しさん2008/06/15(日) 02:49:17
そういうことかすまん。
自分が行頭インデントにしかタブを使わないんで、
常にタブ1つを機械的に置換できると思い込んでいた。
0996デフォルトの名無しさん2008/06/15(日) 02:54:57
コメントが不揃いになってもまあいいよ。
コメントとコードの両方が不揃いなのに比べれば。
0997デフォルトの名無しさん2008/06/15(日) 02:56:16
立てられなかった。誰か頼む。

【初心者歓迎】C/C++室 Ver.55【環境依存OK】


エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.54【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1210694402/l50
【アップローダー】(質問が長い時はココ使うと便利)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0998デフォルトの名無しさん2008/06/15(日) 03:02:45
いってくる
0999デフォルトの名無しさん2008/06/15(日) 03:03:59
ほい
【初心者歓迎】C/C++室 Ver.55【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1213466622/
1000デフォルトの名無しさん2008/06/15(日) 03:04:19
うめ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。