0

質問は簡単です: このコードの何が問題なのですか?

  size_t  buff = 1;
  size_t  new_buff;
  WCHAR   *var_path;
  WCHAR   *dir_path;

  var_path = new WCHAR[buff];
  new_buff = GetEnvironmentVariableW(L"APPDATA", var_path, buff);

  if (new_buff == 0) {
    return 1;
  } else if (new_buff > buff) {
    delete[] var_path;

    var_path = new WCHAR[new_buff];
    GetEnvironmentVariableW(L"APPDATA", var_path, new_buff);
  }

  dir_path = new WCHAR[new_buff];
  wcscpy_s(dir_path, new_buff, var_path);
  wcscat_s(dir_path, new_buff, L"\\directory");

バッファが小さすぎると言われていますwcscat_s

4

1 に答える 1

1

new_buff文字を割り当てるだけでdir_path(そしてそのサイズを教えwcscat_sて)、さらに文字を追加したいとします。new_buff に加えて の長さを割り当て、その実際のサイズL"\\directory"を伝える必要があります。wcscat_s

于 2013-07-22T09:04:48.263 に答える