文字列のサイズ変更と連結を行う一般的な関数を作成しようとしていますが、realloc() を呼び出すと、ヒープが破損していることを示す実行時例外が発生します。
//two string pointer initialized with malloc()
wchar_t* stream;
wchar_t* toAdd;
stream = (WCHAR *)malloc(sizeof(wchar) );
toAdd= (WCHAR *)malloc(sizeof(wchar) );
//function declaration
int ReallocStringCat(wchar_t *, const wchar_t *);
//
int ReallocStringCat(wchar_t *dest,const wchar_t *source)
{
//below line throws a heap corrupt exception
*dest =(wchar_t) realloc(dest, wcslen(dest) + wcslen(source) + 1);
return wcscat_s(stream,wcslen(dest) + wcslen(source) + 1, source);
}
ポインターとアドレスの使い方がどこか間違っていると確信していますが、それを理解することはできません。
また、CLR/MFC/ATL ライブラリを使用せずにネイティブ Win32 C++ アプリケーション用に Visual Studio 2012 C++ で使用できる可変クラスなどの組み込み関数はありますか?