バグ:文字列から数値に変換

Posted: 2013年04月01日

文字列操作(文字列から数値に変換)で気が付かずに書いてしまうバグを紹介します。
前も似たようなことは書いた気もしますが
2度書いても、忘れてしまうことなため!!

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    CString strNumber;

    strNumber.Format(_T("%3d"), 100);
    int nNum = _tcstol(strNumber);

    // 処理

    return 0;
 }

このプログラムにどのように文字列操作(文字列から数値に変換)にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »

バグ:環境変数が含まれる文字列の扱い

Posted: 2013年03月25日

文字列中に環境変数が存在する文字列の扱い方を間違えてよく書いてしまうバグを紹介します。
通常は、気が付くレベルの問題のため
そこまで深刻な問題にはならないですが取り上げます。

プログラムプログラム:

 #include <stdio.h>
 $include <winbase.h>

 int main(int argc, char *argv[])
 {
    const TCHAR *pszSrc = _T("%PROGRAMFILES%Microsoft");
    TCHAR szExpandPath[MAX_PATH];
    DWORD nExpandPathSize = sizeof(szExpandPath) / sizeof(TCHAR);

    // 環境変数を展開
    ExpandEnvironmentStrings(pszSrc, szExpandPath, nExpandPathSize);

    // 処理

    return 0;
 }

このプログラムにどのように文字列中に環境変数が存在する文字列の扱い方を間違えていると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »

バグ:ファイルパス文字列の操作

Posted: 2013年03月18日

ファイルパス文字列の操作でよく書いてしまうバグを紹介します。

プログラムプログラム:

 #include  <stdio.h>
 #include <stdlib.h>

 int main(int argc, char *argv[])
 {
    CString strFolderPath = _T("C:WindowsSystem32");
    CString strFileName = _T("cmd.exe");

    // 連結
    CString strCmdPath = strFolderPath + strFilePath;

    // 処理

    return 0;
 }

このプログラムにどのようなファイルパス文字列操作関連のバグがあると思いますか?



カテゴリー: バグ, プログラム | タグ: , , , | コメント無し »

バグ:文字列を返却する関数

Posted: 2013年03月11日

文字列の返却する関数処理でよく書いてしまうバグを紹介します。
最近よくある話題ですが
処理としては問題ないけど、それで大丈夫?なコードです。

プログラムプログラム:

 #include <stdio.h>
 #include <stdlib.h>

 CString GetLoginUserName()
 {
  CString strUserName;

  // 処理

  return strUserName;
 }

 int main(int argc, char *argv[])
 {
    CString strUserName = GetLoginUserName();

    return 0;
 }

このプログラムにどのような文字列の長さ取得処理のバグがあると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »

バグ:文字列の連結で問題はありますか?Java編

Posted: 2013年03月04日

文字列操作(連結)で書いてしまうバグを紹介します。
わかりづらいですが今回はJava編です。

プログラムプログラム:

 public static void main(string []args)
 {
    string src = " ABCDEFG";

    for (int index = 0; index < 100; index++) {
        src += "HIJK";
    }

    // 処理
 }

このプログラムにどのように文字列操作(連結)にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »

バグ:ファイルパスをコピーしたため間違っていませんけど

Posted: 2013年02月25日

文字列操作?エスケープ文字列で書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    CString strSrc = _T("C:temp"); // 全角空白

    // 処理

    return 0;
 }

このプログラムにどのように文字列操作(連結)にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »

バグ:文字列の連結で問題はありますか?

Posted: 2013年02月18日

文字列操作(連結)で書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    CString strSrc = _T(" ABCDEFG "); // 全角空白

    for (int nIndex = 0; nIndex < 100; nIndex++) {
        strSrc.Append(_T("HIJK"));
    }
    // 処理

    return 0;
 }

このプログラムにどのように文字列操作(連結)にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , , | コメント無し »

バグ:Formatでデバッグメッセージを作っただけなのに

Posted: 2013年02月11日

文字列のフォーマット操作で書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    CString strFormat;
    strFormat.Format(_T("%s"), 5);

    // 処理

    return 0;
 }

このプログラムにどのように文字列のフォーマット操作にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , , , | コメント無し »

バグ:Trimで指定文字が削除されないなんて詐欺に近い

Posted: 2013年01月28日

文字列操作(空白除去等)で気が付かずに書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    CString strSrc = _T(" ABCDEFG "); // 全角空白

    strSrc.Trim();

    // 処理

    return 0;
 }

このプログラムにどのように文字列操作(空白除去等)にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , , | コメント無し »

バグ:CSVなどの文字を解析

Posted: 2013年01月21日

文字列解析中(CSV等)に間違えてよく書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    const TCHAR *pszSrc = _T("AAA,BBB,CCC");
    CStringArray aryResult;

    char *pPosition = _tcstok(pszSrc, _T(",");
    while (pPosition != NULL) {
        pPosition = _tcstok(pszSrc, _T(",");
        aryResult.Add(pPosition);
    }

    return 0;
 }

このプログラムにどのように文字列解析処理を間違えていると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »
Page 3 of 512345