new/deleteで異常終了する(Visual C++)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/01/06(水) 20:35:52Visual C++ 2008でコーディングしています。
コーディングは何度も何度も見直しました。
間違っていません。
なのに、実行するとnewで異常終了します。
debug版で動かすと動きます。release版で動かすと異常終了します。
デバッグのしようがありません。
ホントに、コーディングは正しいんです。
こういう症状の原因って何が考えられるでしょうか。
よろしくお願いします。
deleteでも異常終了します。
未初期化ポインタのdeleteとかそんなのではなくて、
本当にコーディングはあってるのに、異常終了します。
動きは、毎回違います。
例えば、printfデバッグをしようとしてprintfを
挿入すると、異常終了ポイントが変わります。
でも、newかdeleteで落ちます。
ホントに、ホントに、コーディングは合ってるのに
どうしようもありません。
もう何ヶ月も仕事が進みません。
このままだと、クビになっちゃいます。
お願いします、本当に、よろしくお願いします。
0314デフォルトの名無しさん
2010/02/14(日) 10:07:13必ずしもそれは使わなくてもクラスに次の3行
private:
A(const A&);
A& operator=(const A&);
を付け加えるか(もちろんAは実際のクラス名に変更)これを継承すれば
コピー不可能になるよ
0315デフォルトの名無しさん
2010/02/15(月) 05:56:260316デフォルトの名無しさん
2010/02/15(月) 11:47:24仕事でboostが必ず使えるとでも思っているのか?
0317デフォルトの名無しさん
2010/02/15(月) 12:08:02>>314だけを入れたクラスをnoncopyableという名前で宣言しておき、
これを継承すればboostと同じ事になるから可読性が下がるという
事はない
0318デフォルトの名無しさん
2010/02/15(月) 12:45:460319デフォルトの名無しさん
2010/02/15(月) 14:21:00boost使えても、普通は>>314。
0320デフォルトの名無しさん
2010/02/16(火) 22:31:58んなこたない。
例えば WebKit では Noncopyable というクラスを自前で用意してそれを使っている。
http://trac.webkit.org/browser/trunk/JavaScriptCore/wtf/Noncopyable.h
0321デフォルトの名無しさん
2010/02/16(火) 23:44:56自前で用意するっていうのか?
0322デフォルトの名無しさん
2010/02/17(水) 08:28:450323デフォルトの名無しさん
2010/02/17(水) 08:30:090324デフォルトの名無しさん
2010/02/17(水) 11:34:53んなことないこたない。
一段階余分なものがあると、それを知らない奴はその内容を調べないとならないだろ。
手間がかかるわけじゃなし、>>314が最良だろ。
0325デフォルトの名無しさん
2010/02/17(水) 17:09:58いつのまにか誰かに修正されちゃうかもしれないだろ。w
0326デフォルトの名無しさん
2010/02/17(水) 17:16:49糞吹いたw
0327デフォルトの名無しさん
2010/02/17(水) 17:19:35C#かJavaを使うべし
0328デフォルトの名無しさん
2010/02/17(水) 20:42:28マジで派遣にそれをやられたことがある。
「事前条件チェックするな!実行したら落ちたろ!」と逆ギレされたこともある。
「constなんて使っているバカは誰だ!コンパイルが通らないだろボケ!!」には参った。
仕組みとして防ぐのがベスト、しかも明示的に書くのが理想だが、残念ながらアホには通じないw
0329デフォルトの名無しさん
2010/02/17(水) 21:01:360330デフォルトの名無しさん
2010/02/18(木) 00:25:53派遣にしろプログラマにしろ
そんな危なっかしいのはとてもじゃないけど雇ってられないな
フレームワークやシステムの思想を独断で破られるとか後が大変だぞ、、
0331デフォルトの名無しさん
2010/02/18(木) 00:43:25Noncopyable という名前を見て意図を察することのできない奴はよっぽどの痴呆
万が一コードを見に行ったとしても20秒で読み終わるぞ
似たようなコード片をあちこちにばら撒くよりはミスの可能性が減るし、やっておいて損はない
0332デフォルトの名無しさん
2010/02/18(木) 11:09:480333デフォルトの名無しさん
2010/02/18(木) 11:56:31お前は、ファイルの場所も内容も知ってるから20秒で終わるんだよ。
0334デフォルトの名無しさん
2010/02/18(木) 12:03:45コピー禁止なクラスなんて数個くらいだろうに、なんでほんのちょっとコードを加えるのを
嫌がるのだろうか。
そもそもC++はMix-in的なものはなじんでないから、Noncopyableに限らずいくつも多重継承
されてると、はてなと思ってしまう。
0335デフォルトの名無しさん
2010/02/18(木) 17:13:45半分バグってると思って扱ったほうがいい
0336デフォルトの名無しさん
2010/02/18(木) 18:18:260337デフォルトの名無しさん
2010/02/18(木) 20:58:33プログラマなんて労力を省いてなんぼの商売でしょうに。
0338デフォルトの名無しさん
2010/02/19(金) 01:21:000339デフォルトの名無しさん
2010/02/19(金) 04:58:17でも成立しそうな気がした。
0340デフォルトの名無しさん
2010/02/19(金) 11:41:30privateに決まり切った二行を追加するだけだろうが。
Noncopyable使う場合もinclude文と継承部分の変更が必要で、合計二行の変更が必要。
どんだけ労力変わるんだよ?
0341デフォルトの名無しさん
2010/02/19(金) 13:00:080342デフォルトの名無しさん
2010/02/19(金) 13:10:36noncopyableを使うメリットは、クラスの宣言全部を見ることなくそのクラスがコピー不可だとわかること。
privateに追記派は、クラスのコメントに「コピー不可なクラス」とか書いちゃうわけ?
0343デフォルトの名無しさん
2010/02/19(金) 21:54:01引き起こってくれればいいわけでどっちでも構わないけどな
まあ、値渡しで何が起こるかわからないとか、コピー禁止の方法を知らないとか、
そういうのがこの上のレスだけでも散見できるわけで
noncopyableがあれば一目瞭然というほどの知名度はなさそうだけどな
>>341
final属性か何かと勘違いしていないか?
03441
2010/02/21(日) 17:57:36アプリが突然落ちて、DBマスターを壊したみたいで
大騒ぎでした。で、金曜日についにM$社の担当者が
呼び出されていました。ソースを渋々見せながら状況
を上司が説明したところ、結局担当者にも原因がわか
らなかったようで、「どうか御内密に」という意味で
しょうか、ずっしりと重いキャスター付き旅行用スー
ツケースを置いてきました。あの中には何が入ってい
たのかは大体想像がつきますが、金曜日の晩は普段は
飲み会は常に割り勘なウチの会社が珍しく高級バーに
招待してくれました。
0345デフォルトの名無しさん
2010/02/21(日) 19:54:52それで DB 壊れるってかなり酷いレベル。
0346デフォルトの名無しさん
2010/02/21(日) 20:45:49/Sオプション付けると常駐して専用DLLを通して
連続的にサービスを実行してくれるアプリケーションも
あります。
0347デフォルトの名無しさん
2010/02/21(日) 22:40:090348デフォルトの名無しさん
2010/02/22(月) 01:16:050349デフォルトの名無しさん
2010/02/22(月) 07:23:32これはMSに訴えられたら負けるレベル
ネットには何を書いてもいいといまだ思っているやつがいるとは。
ご愁傷さま
0350デフォルトの名無しさん
2010/02/22(月) 13:24:45ずっしりと重い過去資料(マニュアル、参考書、一部プリント
アウト)ってのが関の山だろ
使用許諾契約書にミッションクリティカルな用途には
使ってはならない
と明記されているんだし...
0351デフォルトの名無しさん
2010/02/22(月) 14:19:420352デフォルトの名無しさん
2010/02/24(水) 01:13:080353デフォルトの名無しさん
2010/02/24(水) 04:45:53これは敢えて書く迄もないだろw
>>1が高級バーに連れて行ってもらえた
実はこれから始まるバグフィックスまでの
開発室監禁の挨拶代わりじゃねの?
0354デフォルトの名無しさん
2010/02/24(水) 12:24:57「ええっ!!ドリンクだけじゃないんですか?!!!」
0355デフォルトの名無しさん
2010/02/24(水) 17:03:510356デフォルトの名無しさん
2010/02/24(水) 19:50:5203571
2010/02/24(水) 21:58:37ます。部屋にはビデオ付きベッドが置かれており共用で
す。シャワールームもトイレットも何故かついてます。
ベッドの上にテーブルを持ち込んで4人並んでPCに
向かってます。部屋はかなり暖房がキツめで皆裸です
0358デフォルトの名無しさん
2010/02/24(水) 23:19:230359デフォルトの名無しさん
2010/02/24(水) 23:32:590360デフォルトの名無しさん
2010/02/25(木) 06:45:30だが待ってほしい。その3人が森三中レベルだったとしたら、どうだろうか?
03611
2010/02/25(木) 15:15:22わかりかけたので3人からご褒美を頂きました。
それぞれ微妙に違うもんですね。結構開発されてました。
さすがに4人でダブルベッドに寝るのは窮屈でしたが。
起きたのはお昼前です
0362デフォルトの名無しさん
2010/02/25(木) 15:32:080363デフォルトの名無しさん
2010/02/26(金) 13:01:370364デフォルトの名無しさん
2010/02/26(金) 15:16:5203651
2010/02/26(金) 17:00:36見込みでは週明け位までは終わりそうに
ありません。
今日始めて一人の同僚がお尻を拭かせて
くれました。
いつもはボクが前のほうを拭く役割なので
すが...
03661
2010/02/26(金) 18:12:4803671
2010/02/26(金) 21:00:32上司が発狂し3週間で直せと無茶苦茶な事を言い出しました。
社長と専務に「他人の不具合修正を超短期間でやれと押し付けられた」と
事実を伝えたらSと上司は3/21付けで他部署に左遷が決まりました。
五月蝿いのがいなくなったので、これで心置きなく
不具合原因報告書に「原因:Releaseビルド 修正法:Debugビルド」とかけます。
03681
2010/02/27(土) 02:00:51隣で一人の同僚の娘は裸で寝てます。
時々ボクの股間に手を伸ばしてきますが
払いのけながらの仕事です。もう慣れました。
0369デフォルトの名無しさん
2010/02/27(土) 10:44:360370デフォルトの名無しさん
2010/02/27(土) 10:53:360371デフォルトの名無しさん
2010/02/28(日) 00:42:380372デフォルトの名無しさん
2010/02/28(日) 01:14:29>>1とは、無能な開発者を、Sに劣らないレベルの高いライブラリを作りたいと望む人々の間で、自然発生的に生まれた底辺プログラマである。
はじめはジョークに過ぎなかった。
>>1はこの世のどこかにいるはずの底辺プログラマだった。
しかしそれは>>14のまさに『糞』と呼ぶに相応しいコードにウンザリしていた京都大学霊長類研究所の間で瞬く間に広まって行った。
Sのコードがこう動いた。VCのあのデバッグモードは美しかった。
>>1はそうやって、少しずつ理想のバグの原因を突き止めていった。
彼は健康で顔色のよい新入社員である、彼が敵対する同僚はSである、彼はバグの原因を他人のせいにしておかないと落ち着かない、
そして彼は親しみやすいことにメモリ破壊が大好きなのだ!
>>1はこうして、天才チンパンジーの理想のプログラマのイメージのコラージュとして生まれたのである。
アイちゃんは>>1を欲した。故に>>1は存在するのである。
03731
2010/02/28(日) 01:33:13まだバグが取れません。
彼女達は昼間かなりしつこく攻めてきましたが
さすがに今は疲れたのか横ですやすや三人並んで
寝ています。
彼女達のウンコの匂いも嗅ぎました。
一体感が出てきたので頑張って開発を続けます。
0374デフォルトの名無しさん
2010/02/28(日) 11:09:080375デフォルトの名無しさん
2010/03/01(月) 08:19:36を横山やすしと空目したことだけは伝えたい。
03761
2010/03/01(月) 09:26:30なってきましt。私たちはまだ監禁されてます。
03771
2010/03/04(木) 18:12:54作業開始から1000回はmakeしてます。
03781
2010/03/05(金) 04:54:12またアクセス制限に引っかかって、ずっと書き込めませんでした。
>>344から>>377の1を名乗る書き込みは私ではありません。
お蔭様で、私が担当していたソフトは、無事納品できました。
試験もすべてクリアし、newやdeleteでの異常終了はもう起きていません。
03791
2010/03/05(金) 05:58:27今日もまたオフィス横の監禁室での
彼女達とのmake作業が大量に...
0380デフォルトの名無しさん
2010/03/05(金) 12:58:53もうやめろよ。>偽者
0381デフォルトの名無しさん
2010/03/05(金) 14:29:39結局何が原因だったのかまとめてくれないか?
会社によってはそういうのは人工的に再現出来る
段階まで煮詰めないとフィックスしたとは
認めてくれないところもあるね。
0382デフォルトの名無しさん
2010/03/05(金) 17:51:27>結局何が原因だったのかまとめてくれないか?
メンバー全員のレベルが低かった。
0383デフォルトの名無しさん
2010/03/05(金) 18:39:240384デフォルトの名無しさん
2010/03/05(金) 22:10:29解決策:Sのコード修正
これが>>1の限界。これ以上の調査を>>1に求めるのは酷だぞ。
0385デフォルトの名無しさん
2010/03/06(土) 10:24:51解決策:仕様
これが>>1の限界。これ以上の調査を>>1に求めるのは酷だぞ。
0386デフォルトの名無しさん
2010/03/06(土) 15:09:31仕様だって騒いでた奴いたな〜
0387デフォルトの名無しさん
2010/03/06(土) 15:42:08レビューでdeleteを全て消して修正したと言い張り
挙句にnew/deleteはC++の不具合だと断言した奴がいた。
まぁ、>>1もその同類だろうがなw
03881
2010/03/06(土) 16:37:59今、改善に向かって日夜努力中です。
0389デフォルトの名無しさん
2010/03/07(日) 12:09:100390デフォルトの名無しさん
2010/03/07(日) 22:01:40初めの方はみんな何言ってるのかさっぱり分からなかった。(何しろdelete[]の[]が□にしか見えなかったのは内緒)
悔しいから、分からない単語をひとつずつ調べていったら、徐々に理解できるようになった。
皆さんありがとうございます。
0391デフォルトの名無しさん
2010/03/07(日) 22:32:09みんな結構優しいんだよな。
0392デフォルトの名無しさん
2010/03/07(日) 22:38:340393デフォルトの名無しさん
2010/03/08(月) 22:13:14とりあえず中学くらいは卒業しとけや
0394デフォルトの名無しさん
2010/03/11(木) 00:25:26>>44 での>>1 の取った行動。
44 :1:2010/01/07(木) 21:55:51
>>20 スルー
>>23 都合のいい一行目だけ視界に入るものの2行目は理解を超えたためスルー
>>31 同様にスルー
アッー
03951
2010/03/11(木) 00:32:40make総数はついに3000回を超えました。
絶倫と呼んで下さい。
ネットアクセスは暫く自粛しますんで。
次に1を名乗るカキコが出ても偽物だと思って
下さい。
0396デフォルトの名無しさん
2010/03/11(木) 00:41:25たいしたことないと思うがw
0397デフォルトの名無しさん
2010/03/11(木) 00:53:20makeして問題が発生してないかチェックする専門グループ
とか居て、別スレッドで作業してんじゃね?
何十台ものPCで並列でmakeを数十分置きに行ってたりしてるとか。
正式なバージョンアップとして公開されるカーネルは失敗した
更新を除いたもの
0398デフォルトの名無しさん
2010/03/11(木) 01:31:00専門のチェックグループがいるのに>>14みたいなコードが許されてしまうのか
0399デフォルトの名無しさん
2010/03/12(金) 12:40:25コピーコンストラクタと代入演算子の必要性がわからない奴は
C++触るなよ
0400デフォルトの名無しさん
2010/03/14(日) 00:52:53C++の最大の難所。仕事でさせられる人は可哀想だと言えば
可哀想。
Java経験者ならすぐにその辺り察知して回避したり、使い
分けられるようになるだろうからなおさら...
0401デフォルトの名無しさん
2010/03/14(日) 06:57:100402デフォルトの名無しさん
2010/03/14(日) 07:52:120403デフォルトの名無しさん
2010/03/14(日) 12:09:43JAVAだけやってたひとがそのへんの
危険さをすぐに理解できるとは思えない
0404デフォルトの名無しさん
2010/03/14(日) 12:37:120405デフォルトの名無しさん
2010/03/14(日) 16:39:38違和感はあるが公式にも全部大文字の例があるから間違いではないだろう
それより全部全角のほうが気になる
0406デフォルトの名無しさん
2010/03/14(日) 17:01:47英語入力しようとおもったらSHIFTキーを押しながらやるから全部全角でいいんだよ
いちいちF10を押したり半角全角で切り替えるのか?めんどくせーやつだな
0407デフォルトの名無しさん
2010/03/14(日) 17:48:51別にめんどくさいとは思わんけどね
おまえさんだってコード書いてるときは日本語入力切り替えるだろ
0408デフォルトの名無しさん
2010/03/14(日) 21:21:49いや、いいんだけどさ
0409デフォルトの名無しさん
2010/03/15(月) 01:24:390410デフォルトの名無しさん
2010/03/15(月) 01:44:30>>1はJavaへ移行することでC++の煩わしさから解放されるだろう
オレも>>1がC++の世界からいなくなることで不安から解放される
0411デフォルトの名無しさん
2010/03/15(月) 06:37:54そしたらC++の煩わしさなど大半はアホらしい
もの(Java勉強不足/C勉強不足が原因)だった
ということがわかる筈(本当に煩わしいものは
あることはあるが)(C++の世界(笑))
0412デフォルトの名無しさん
2010/03/15(月) 07:17:03CPU資源を無駄食いした糞重いソフトが出来上がるだけじゃねえか
ソフトウェアは速さこそ正義だ
0413デフォルトの名無しさん
2010/03/15(月) 09:04:02中にはステップワゴンを欲しい人間も居る
■ このスレッドは過去ログ倉庫に格納されています