したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

ヒッキープログラミングスレ 2

1(-_-)さん:2013/06/20(木) 03:58:01 ID:???
プログラミングの話題のスレ

質問・相談
初心者からプロまで
プログラミングに関することなら何でもOK

ヒッキーのプログラミングするスレ
http://ikura.2ch.net/test/read.cgi/hikky/1362050172/

プログラミングできる奴、一緒にアプリ作ろうぜ!!
http://ikura.2ch.net/test/read.cgi/hikky/1360671157/

ヒキ板情報技術部
http://ikura.2ch.net/test/read.cgi/hikky/1348106094/



前スレ
ヒッキープログラミングスレ
http://jbbs.livedoor.jp/bbs/read.cgi/internet/17286/1361821799/

501(-_-)さん:2013/12/28(土) 18:19:47 ID:???
あと、 mystring mystring::operator=( mystring &obj ) でもちゃんと終端文字 '\0' を入れないと前に確保されたdataでは終端文字以外が入ってるかもしれないし

502(-_-)さん:2013/12/28(土) 18:20:50 ID:???
new char[] のとこが1個分メモリが足りないと書いたけど
それに合わせて直前の if 文 も変えないといけないね

503(-_-)さん:2013/12/28(土) 18:21:35 ID:???
>>502は無し、>>502は問題なかった、ちょっと勘違いした

504(-_-)さん:2013/12/28(土) 18:25:39 ID:???
とにかく、僕が見て気づいた直すべきと思われるポイントをまとめると (>>498-501 をまとめると)

●コンストラクタ mystring( const mystring &obj ) での new char('\0') とサイズ1の配列の宣言 new char[1] に直す

●下記関数での new char [] のとこの配列サイズに +1 を書き足す
void mystring::set_val( const char *val )
mystring mystring::operator=( mystring &obj )
mystring mystring::operator=( const char *val )

●関数mystring mystring::operator=( mystring &obj ) の関数を抜ける前に文字列の最後を示す '\0' を代入する

の以上3点だね

505(-_-)さん:2013/12/28(土) 18:26:21 ID:???
ヒープが壊れるというのは引数なしのコンストラクタのせいではないと思うよ

506(-_-)さん:2013/12/28(土) 18:31:51 ID:???
ああ、よく見てなかった、int mystring::length() ってヌル文字分までカウントするのか それなら >>500は問題なかったね、ごめんよ

507(-_-)さん:2013/12/28(土) 18:33:31 ID:???
NULL文字までカウントするなら逆に data[ count ] = '\0'; の部分が問題だね、 countが指す場所はメモリの外になるよ、

508(-_-)さん:2013/12/28(土) 18:37:22 ID:???
>>498-507までのことをまとめると

●コンストラクタ mystring( const mystring &obj ) での new char('\0') とサイズ1の配列の宣言 new char[1] に直す

●下記関数での data[ count ] = '\0'; の挿入場所が 1個分ズレてるので -1 する
void mystring::set_val( const char *val )
mystring mystring::operator=( const char *val )

●関数mystring mystring::operator=( mystring &obj ) の関数を抜ける前に文字列の最後を示す '\0' を代入する


の3点

509(-_-)さん:2013/12/28(土) 18:39:45 ID:???
>>498-507までのことをまとめると

●コンストラクタ mystring( const mystring &obj ) での new char('\0') とサイズ1の配列の宣言 new char[1] に直す

●下記関数での data[ count ] = '\0'; の挿入場所が 1個分ズレてるので -1 する (つまり data[ count - 1 ] = '\0'; だね )
void mystring::set_val( const char *val )
mystring mystring::operator=( const char *val )

●関数mystring mystring::operator=( mystring &obj ) の関数を抜ける前に文字列の最後を示す '\0' を代入する(つまり data[ obj.length() - 1] = '\0'; だね)


の3点

510(-_-)さん:2013/12/28(土) 18:41:21 ID:???
ああ、そうかlength()がヌル文字までカウントするなら最後3番目の話はいらないのか>>501もなしだわ、
俺どうもせっかちで、よくコードを見ないで

511(-_-)さん:2013/12/28(土) 18:42:10 ID:???
>>498-510までをまとめると

●コンストラクタ mystring( const mystring &obj ) での new char('\0') とサイズ1の配列の宣言 new char[1] に直す

●下記関数での data[ count ] = '\0'; の挿入場所が 1個分ズレてるので -1 する (つまり data[ count - 1 ] = '\0'; だね )
void mystring::set_val( const char *val )
mystring mystring::operator=( const char *val )

の2点だけ問題

512(-_-)さん:2013/12/28(土) 18:44:38 ID:???
また少し勘違いしてた値のコピーのとこのコード while( *data++ = *val++ ); はヌル文字までしっかりコピーしてるね、>>511もまたちがう・・・

513(-_-)さん:2013/12/28(土) 18:46:04 ID:???
>>498-511までをまとめると

●コンストラクタ mystring( const mystring &obj ) での new char('\0') とサイズ1の配列の宣言 new char[1] に直す

●下記関数での data[ count ] = '\0'; の挿入場所が 1個分ズレていて場合によっては確保したメモリの外側のデータを書き換えてる
void mystring::set_val( const char *val )
mystring mystring::operator=( const char *val )
直後の while( *data++ = *val++ ); でヌル文字までコピーしてるから data[ count ] = '\0'; のコード丸々削除してもいいと思う

の2点だけ問題

514(-_-)さん:2013/12/28(土) 18:48:44 ID:???
>>497

>>513が僕の最終的な意見です、>>498-512はスルーしてください・・・

515(-_-)さん:2013/12/28(土) 18:54:04 ID:???
あと
デストラクタ ~mystring(){ if( data ) delete [] data; }
で data が NULLポインタであっても delete [] data; 呼び出しは安全らしいので if 文は無くてもいいらしいですよ

516(-_-)さん:2013/12/28(土) 18:57:28 ID:???
ヒープが壊れるとのことですが>>513の2番目の部分の確保したメモリ外への書き込みが原因なのではないかと私は推測します(違ってたらごめんなさい)

517(-_-)さん:2013/12/28(土) 19:05:33 ID:???
訳が分けらないよ

518LILIN:2013/12/29(日) 03:52:48 ID:KnAS5adQ
ありがとお(´・ω・`)

解決したお
https://www.dropbox.com/s/uenhjp31qb3a858/StringClass.cpp

519LILIN:2013/12/29(日) 03:55:02 ID:KnAS5adQ
>>511
data[ count - 1 ] = '\0'; の部分だった。

520(-_-)さん:2013/12/29(日) 06:59:59 ID:???
data = new char('\0'); のとこも修正したほうがいいんじゃないの

data = new char('\0'); は char 1個分のメモリを確保する、 (1個分なのでサイズとかは記憶されない)
data = new char[1]; は char 1個分のメモリを確保して、配列のサイズも記憶する(たとえ1個分でもサイズを記憶する)

delete data; だと char 1個分のメモリを解放する
delete [] data; だと 記憶された配列のサイズ分の char のメモリを解放する

だったはずだから
リリンのコードだと
data = new char('\0'); したものを delete [] data; で解放してるから、まずいコードなんじゃないかと思うにゃん

521(-_-)さん:2013/12/29(日) 07:13:36 ID:???
newとdeleteの挙動は本当にそれであっているのだろうか

522(-_-)さん:2013/12/29(日) 07:16:07 ID:???
僕もプログラミング始めたばかりのころはパソコン初心者でもあったよ
まぁ昔はパソコン自体も今よりもだいぶヘボかったから出来ることも少なくはあったけど

523(-_-)さん:2013/12/29(日) 10:50:01 ID:???
自己紹介乙

LILIN ?@ririn_yume

今の時季すげぇww
お前はまずパソコン教室行って来いってひとが
「プログラミング放送」しまくっとるw

524(-_-)さん:2013/12/31(火) 05:54:09 ID:???
おし!MIDletエミュ上でもテストしてみたがちゃんとgzipファイルを解凍でけた!

525(-_-)さん:2013/12/31(火) 05:55:31 ID:???
まさかこのタイミングで規制されるとは思わなかった・・・

526(-_-)さん:2013/12/31(火) 06:00:28 ID:???
gzipの圧縮のほうもやってみるかはどうしよう
レコードストアのサイズは小さいから圧縮して保存できたらそれがいいんだろうけど

527(-_-)さん:2013/12/31(火) 06:11:33 ID:???
そういえばこの完成した解凍器はGZIPヘッダをチェックするCRCの部分がちゃんと出来てるかは未確認なんだよなあ・・・・
手持ちのgzipファイルにはたまたまヘッダチェックが無いからな・・・うーむ、まだまだ安心はできまいか

528(-_-)さん:2013/12/31(火) 06:19:11 ID:???
2ch全鯖規制されたから
プログラミングが捗るかもしれん
僕やったね!

529LILIN:2014/01/05(日) 06:02:12 ID:ogXIYZZI
すとりんぐ・くらすを書き換えています。
https://www.dropbox.com/s/80guvhw46q79c00/String.cpp

530(-_-)さん:2014/01/05(日) 19:34:02 ID:???
アロケータとか何か難しそうなことやってんのね
俺アロケータとか全然分からんちん

531LILIN:2014/01/06(月) 05:16:54 ID:Etd8Xc6Y
継承書いてみたかったから、書いたけど、意味ない気がしてきた。

532(-_-)さん:2014/01/07(火) 21:10:34 ID:???
継承ってよくあるサンプルの動物クラスを猫クラスに継承とかそういうのじゃダメなん

533(-_-)さん:2014/01/07(火) 21:57:05 ID:???
また2ch全鯖規制に巻き込まれたよ・・・今度こそプログラミングに集中できるかな・・・はぁ・・・

534(-_-)さん:2014/01/08(水) 04:43:02 ID:???
ワロタ、
Windowsのアクションセンターというアプリで何やらメッセージ出てると思って開いてみたら
Trojan.PWS.Legmir.AD / W32.Ahlem.A@mm というウィルスが検知されたという、
怪しいサイトとかアクセスした覚えないから詳細開いてみたら、当時作ってて暴走した自作プログラムだったw

535(-_-)さん:2014/01/08(水) 04:45:37 ID:???
言語はC/C++で、どうもsystem()関数を呼び出したのに反応したくさい?

536(-_-)さん:2014/01/08(水) 04:50:55 ID:???
ググったら定番の現象のようだな・・・


プログラムをコンパイル後、「Trojan.PWS.Legmir.AD / W32.Ahlem.A@mmが発見されたと表示される。
http://social.technet.microsoft.com/Forums/ie/ja-JP/c3383de2-f6bc-482c-a13d-69f088a55829/trojanpwslegmirad-w32ahlemamm?forum=windowsvistaja

537(-_-)さん:2014/01/08(水) 04:53:16 ID:???
どうも名前が1文字の実行ファイルが悪いのか・・・?でも何度も色々やってるけど引っかかってるの2件だけなんだよな、イミフ

538(-_-)さん:2014/01/08(水) 04:56:25 ID:???
「Trojan.PWS.Legmir.AD / W32.Ahlem.A@mmが検出されました」|果て
http://ameblo.jp/55335533553355335533/entry-11089442076.html

この記事だとまた違う感じだなあ・・・結局のところ何が問題なのか分からんな

539(-_-)さん:2014/01/08(水) 05:00:31 ID:???
つか、よくよくアクションセンターのメッセージを読んだら
セキュリティ対策ソフトをインストールしろと出てるのな・・・っておいおいMSEたん使ってるんだぞおめえんとこの自社ソフトじゃねえか!
この場合、MSEのほうでは検知してなかったんだが、どちらの反応のほうが正しいんだろうか・・・

540(-_-)さん:2014/01/08(水) 05:03:38 ID:???
暴走した自作プログラムが(何故かアクションセンターで)誤検知されただけだからメッセージを削除しといたわ

541(-_-)さん:2014/01/08(水) 05:05:02 ID:???
っていうかユーザ権限で削除できるってどうなんだ、てっきり管理者モードを要求されるかと思ったのだが・・・Windows恐ろしいな

542LILIN:2014/01/08(水) 05:06:39 ID:6C/WQ0xw
MSEにWindows Update以上のセキュリティを期待できるのかという、疑問。

543(-_-)さん:2014/01/08(水) 05:14:23 ID:???
ウィルス名の後半部が何なのかは分かったが・・・メール送信コードなんて微塵も入ってないのだが・・・


サブジェクト欄や添付ファイル名に「SARS」をかたるウイルスが出現
http://internet.watch.impress.co.jp/www/article/2003/0521/sars.htm

544(-_-)さん:2014/01/08(水) 05:14:58 ID:???
>>542
そんなにダメな子なのかMSEたんは・・・

545LILIN:2014/01/08(水) 05:27:20 ID:6C/WQ0xw
考えてみるんだ!WindowsMeにSが付いた姿を。

546(-_-)さん:2014/01/09(木) 00:55:40 ID:???
MEを知らないからよく分からない

547(-_-)さん:2014/01/09(木) 22:14:40 ID:???
2ch規制で専ブラ開発のモチベがガタ落ちだじぇ・・・まぁまだ板一覧の取得に苦戦中だが

548(-_-)さん:2014/01/10(金) 04:49:11 ID:???
PersonalForge Blog連携機能
https://sourceforge.jp/docs/PersonalForge%2FBlog

この機能が機能してない気がする・・・

549(-_-)さん:2014/01/10(金) 05:09:45 ID:???
Gitブック読もうと思ってたのにもうこんな時間か
また今度読むわ

550(-_-)さん:2014/01/12(日) 03:52:20 ID:???
もう俺、VB6は卒業かなVS2010(C#)に大分慣れてきた
まぁ慣れてきたとはいえC#ではVB6ほどのお手軽感は未だ感じぬがな
C#も入門書か入門サイトで漏れてる知識を補完したいところ

551(-_-)さん:2014/01/12(日) 03:54:49 ID:???
そういえば大学在学中は結局あんまプログラミングはしなかったなあ
卒後の既卒になってからかな、プログラミングの知識やスキルの大幅向上は・・・
プログラミングは小学の頃から触れてたのに大学卒業までの俺のプログラミング人生は一体何だったのかって感じくらいだ・・・

552(-_-)さん:2014/01/12(日) 03:57:30 ID:???
まぁ小中高まではベーマガでN88BASICとか古いBASIC系のシングルプロセス・シングルスレッドのゲームのコードばっか追いかけてたし
大学でデータ構造とアルゴリズムとかOSとかCPU・アセンブリなどの授業とか受けたのも今の俺があるための重要な経験だったけど

553(-_-)さん:2014/01/12(日) 04:00:53 ID:???
高校〜大学くらいまでにC言語の本をちょろっと自学してみたけどあんまよく分かってなかったけど
結局、大学の授業でC言語やるまでほとんど理解できなかったな
ただその授業がC言語の網羅じゃなくデータ構造やアルゴリズム理解の架け橋的な授業だったからC言語もあまりよく知らなかったけど
C言語についての理解を深めたのはこの半年くらいか

554(-_-)さん:2014/01/12(日) 04:03:25 ID:???
残念なのは今日の理解レベルを高校時代あたりに遂げたかったことくらいか・・・今の時点でこのレベルの理解だと全然遅い・・・

555LILIN:2014/01/12(日) 04:04:11 ID:8EiR9ss.
おれよりオッサンやな。

556LILIN:2014/01/12(日) 04:05:01 ID:8EiR9ss.
LinuxでC/C++のコンパイラ欲しいのだけど、なにがいいやらさっぱりわからん。

557(-_-)さん:2014/01/12(日) 04:06:41 ID:???
色々たくさん作ったり発表したりするなら今のレベルの知識・理解を高校時点で成し遂げ、大学在学中に色々作って・・・とかそういう感じにしたかったな・・・
職歴なし、バイト歴なし、30過ぎたオッサンの今じゃ、夢も希望もないよ・・・今のレベルの知識・理解ですらプログラミングの初歩の域を出ていないというのに・・・
根本的に頭が悪すぎる、理解力が弱すぎる・・・

558(-_-)さん:2014/01/12(日) 04:07:59 ID:???
>>556
Linuxは良く知らんけどメジャーなgccじゃダメなの?

559(-_-)さん:2014/01/12(日) 04:09:08 ID:???
LinuxやBSD系ってソースからビルドしてアプリをインストールするときって大体gccを使うんじゃないの?

560(-_-)さん:2014/01/12(日) 04:15:49 ID:???
WindowsXPの期限が切れる前にLinuxに乗り換えたとかそういう感じかな

561(-_-)さん:2014/01/12(日) 04:19:53 ID:???
こゆのとか参考にしたらどう

Windowsプログラマに贈るLinuxプログラミング入門 - 第6回 LinuxでC/C++言語のコンパイルを試す:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20080627/309666/

562(-_-)さん:2014/01/12(日) 04:25:42 ID:???
こんな情報もあるよ

Linux上で稼働するオープンソースの開発ツール--見過ごせないもの10選 - builder by ZDNet Japan
http://builder.japan.zdnet.com/tool/20390778/

563(-_-)さん:2014/01/12(日) 04:48:00 ID:???
そういやVirtualBoxに構築したLAMPサーバーもう1年くらい動かしてないなあ・・・

564(-_-)さん:2014/01/12(日) 04:52:29 ID:???
たまにLinux使いたくなるけど
どうにかOSを交互に使えるPCとか作られないのかね
既存のデュアルブートではなく、それぞれ休止モード(ハイバネート)みたいな感じでPCの再起動なくOSを切り替えるとか出来たらいいのに

565LILIN:2014/01/12(日) 05:10:32 ID:8EiR9ss.
おお(・∀・)
ありがとう。

566LILIN:2014/01/12(日) 05:11:30 ID:8EiR9ss.
2台のPCをひとつの筐体にいれれば完璧(どやぁ

567LILIN:2014/01/12(日) 05:17:52 ID:8EiR9ss.
gccとエクリプスが無難かなぁ。

568(-_-)さん:2014/01/12(日) 05:17:59 ID:???
>>566
その発想は無かった
つまりディスプレイ・キーボード・マウスなどの外部ハードウェアを共有するってことか

569(-_-)さん:2014/01/12(日) 05:21:02 ID:???
初めは無難どころでいいんじゃないの

570(-_-)さん:2014/01/12(日) 05:33:39 ID:???
いつかLFSでLinux環境の構築やってみたいな

571(-_-)さん:2014/01/13(月) 04:52:04 ID:???
mt9937arという疑似乱数生成コードをJavaScriptに移植を試みたが
どうも具合が悪い、正しい結果が出ないばかりかブラウザごとに出力が違うという・・・

572(-_-)さん:2014/01/13(月) 06:52:20 ID:???
ふう、なんとか移植できた、結局Longクラスを自前で用意して対応した・・・
どうも左シフトが厄介物らしく、左シフトで負数になってたのが原因ぽかったけど
それをどう書き直せばいいのか分からんかったから、こういう結果に・・・

573(-_-)さん:2014/01/14(火) 00:40:38 ID:???
少し整形したが、演算を自前クラス経由でやるから遅いこと遅いこと
JavaScript上での整数のビット演算についてちゃんと調べて自前クラスなしでやらんとな・・・

574(-_-)さん:2014/01/14(火) 04:02:34 ID:???
2chブラウザの開発意欲が・・・だるい・・・なんせ規制されてるわけだしもう疲れた

575(-_-)さん:2014/01/14(火) 04:29:10 ID:???
ちょっと専ブラ作るのは(体力的・精神力的な意味での)難易度が高かったようだ・・・
もう10才若ければ数日間打ちこむとか出来るのだが・・・数日に1回2〜3時間くらいしか作業してないから遅々として進まん・・・

576LILIN:2014/01/15(水) 05:41:57 ID:DdkSr.OE
規制解除して欲しいね(´・ω・`)

577(-_-)さん:2014/01/15(水) 10:40:54 ID:???
うん、全くだ

578(-_-)さん:2014/01/15(水) 12:44:41 ID:???
LILINはここに封じ込めておくべき

579(-_-)さん:2014/01/17(金) 19:16:18 ID:???
それは酷い

580(-_-)さん:2014/01/18(土) 03:53:46 ID:???
麻雀ばっかやってて2chブラウザ超停滞中・・・

581LILIN:2014/01/18(土) 05:31:24 ID://I6evj6
||Φ|(|´|゚|ω|゚|`)|Φ||

582(-_-)さん:2014/01/18(土) 19:23:02 ID:???
わろた

583(-_-)さん:2014/01/19(日) 03:13:14 ID:???
リリンはVS2013使ってるのかー
進んでるねー

584(-_-)さん:2014/01/19(日) 05:10:08 ID:???
リリンって言語は何が使えるの?

585(-_-)さん:2014/01/22(水) 14:51:02 ID:???
ヒッキーのプログラミングするスレ 4
http://ikura.2ch.net/test/read.cgi/hikky/1390340542/

586(-_-)さん:2014/01/23(木) 01:06:13 ID:???
プログラミング雑談 2014
http://ikura.2ch.net/test/read.cgi/hikky/1390405980/

587LILIN:2014/01/25(土) 09:22:42 ID:iV5UY9VQ
怖いお(´・ω・`)

JPCERT コーディネーションセンター セキュアコーディング
http://www.jpcert.or.jp/securecoding/

588LILIN:2014/01/25(土) 09:24:05 ID:iV5UY9VQ
趣味でも仕事でも「動きゃいい」がいっぱいありそうだお(´・ω・`)

589(-_-)さん:2014/01/25(土) 13:41:56 ID:???
俺は「美しさ」を最優先する

590LILIN:2014/01/25(土) 15:37:37 ID:iV5UY9VQ
ほう。

591(-_-)さん:2014/01/25(土) 20:37:14 ID:???
>>587-588
ま、でも結局「動きゃいい」だしな

592LILIN:2014/01/25(土) 20:42:23 ID:iV5UY9VQ
まあな。

593(-_-)さん:2014/01/25(土) 20:47:33 ID:???
最近はAOJばっかやってるわ

594(-_-)さん:2014/01/25(土) 23:59:23 ID:???
たまにやると頭の体操になっていい

595(-_-)さん:2014/01/26(日) 03:58:03 ID:???
もうずっと専ブラ作りが滞ってるわ・・・板一覧取得さえ作れてないとは・・・

596(-_-)さん:2014/01/26(日) 05:03:58 ID:???
ts

597(-_-)さん:2014/01/31(金) 02:41:09 ID:???
ファイル名の交換ができるスクリプトを考えてるなう
簡単に言えば連番名のファイル名で3番と4番の順番を間違えてファイル名をつけたとき
ささっと交換できたらいいなーって

598(-_-)さん:2014/02/01(土) 00:27:24 ID:???
#!/bin/sh
mv $1 tmp
mv $2 $1
mv tmp $2

こんな感じ?

599(-_-)さん:2014/02/01(土) 02:19:26 ID:???
そんな感じ

600(-_-)さん:2014/02/02(日) 20:06:51 ID:???
>>564

KVMスイッチ - Wikipedia
http://ja.wikipedia.org/wiki/KVM%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板