情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

知らなかったWindows用ショートカット このエントリーを含むはてなブックマーク

WindowsキーがCtrl+Escで代用できることは前から知っていたのですが、 まさか「Shift+F10」がアプリケーションキーになるとは・・・つまり、Shift+F10は、右クリックのショートカットってわけですね。

ショートカットって便利ですよね。というか、ないと困る。

それと、最近知ったのが、Vista限定ですが、 「Windowsキー+数字」というショートカット。これをすると、 クイック起動バーの押した数字番目が起動します。こんなショートカットキーがあったとは!

MCP教科書 Windows Vista (試験番号:70-620) (MCP教科書)

スポンサーサイト
Windows | コメント:0 | トラックバック:0 | 編集

size_t型をprintfで表示するときは このエントリーを含むはてなブックマーク

sizeだから、unsignedだろう。だから、"%u"で出力できるだろうと思っていたら、32bitから64bitに移植した時にエラーだらけに。

size_t型をprintfやsprintfで表示するときには、"%zd"のように、"z"を使えばいいらしい。知らなかった。

printf("size=%zd\n", sizeof(char *));

ちなみに、uint64_t型を表示するときには、

printf("value64=%"PRIu64"\n", (uint64_t) value64);

のように、PRIu64というマクロを利用します。

うーん、知らないとこれは分かりませんよね。

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
C実践プログラミング
C言語逆引き大全 500の極意

C言語 | コメント:0 | トラックバック:0 | 編集

C言語のfree関数の内部でエラー このエントリーを含むはてなブックマーク

eclipseでC言語のプログラムをデバッグ実行してみるとfree関数の内部でエラーを起こしているようでした。スタックトレースはこんな感じ。

Thread[1](Suspended: Signal 'SIGABRT' received. Description: Aborted.)
14 _kernel_vsyscall() 0xb7f4a410
13 raise() 0xb7e02085
12 abort() 0xb7e03a01
11 0xb733ab7c
10 0xb7e42a85
9 free(9 0xb7e754f0
...

はて、何でだろう。二重にfreeしてるのか?とも思いましたが、そうではなかったみたいです。

問題のコードはだいたいこんな感じ

char *str = (char *) malloc(sizeof(char) * 4; char *str2 = NULL; strcpy(str, "abc"); str2 = str + 2; free(str2);

なんかだいぶ適当な例ですが、ポイントは、mallocから受け取ったアドレス(str)から ずれたアドレス(str2)でフリー使用としているということです。

フリーで渡すべきポインタ型の変数はmallocで確保したメモリ領域の先頭である必要があるので、そのメモリ領域の途中をfree関数に渡してはいけません。っていうことみたいです。

大したことじゃないんですけど、デバッグって大変ですね。っていうことです。

実践 デバッグ技法 ―GDB、DDD、Eclipseによるデバッギング
Debug Hacks -デバッグを極めるテクニック&ツール
C言語 デバッグ完全解説 (Gihyo Technology)

C言語 | コメント:0 | トラックバック:0 | 編集

Windows Live Messenger で エラーコード80080005が出てログインできない時の解決方法 このエントリーを含むはてなブックマーク

Windows Live Messenger Version 2009(Build 14.0.8064.206)で、Microsoft Updateをやったりした後、突然ログインができなくなってしまいました。

そのとき表示されたエラーメッセージ:

Windows Live Messenger にサインインできません

サービスが一時的に利用不可のため、Windows Live Messenger にサインインできませんでした。後でもう一度やり直してください。

詳細情報の表示...

エラー コード: 80080005

サービスが一時的に利用不可ということで、サーバの問題かと思いきや、 いつまでたってもログインできませんでした。

Windows | コメント:3 | トラックバック:0 | 編集

JDK6 update 14 リリース このエントリーを含むはてなブックマーク

http://java.sun.com/javase/ja/6/download.htmlここから、最新版のJDKとJRE 6 update 14がダウンロードできます。

前回はupdate 13が出たという話をしました。

そこで書いたことをまるまる引用。

ということで、超初心者向けJavaプログラミングの環境構築法のページを書き直さなければ… 最初のダウンロードページの 「Java SE Development Kit(JDK)6 Update 12」を「JDK 6 Update 14」に読み替えてもらえばそれ以降は大丈夫かなーと… 極力書き直したくない・・・時間かかるので。

で、いったいJava7はいつ頃…。完全にC#に"言語の機能的には"おいて行かれてるように感じてしまいます。しかし結局のところ、安心感・定番感のあるJavaとしては、あんまり新機能をほいほい入れるわけにも行かないんですかね…というか、Javaから見れば、C#の存在自体は敵じゃないんでしょうね。

増補改訂版Java言語で学ぶデザインパターン入門
Effective Java 第2版 (The Java Series)
徹底攻略 Java2 プログラマ問題集

Java | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。