[問題] 在 template 中 new
各位好,我想要在 template 中做 new 的動作。
不過在出 function 之後, pointer 的位置就會消失了,
想請教一下為什麼?那要怎麼改才會正確呢?謝謝。
void main ()
{
int *piTemp = NULL;
createBuffer(piTemp, 10);
// do something..
delete [] piTemp;
}
template <class Type>
bool createBuffer(Type *pType, int iSize)
{
try
{
// 先 delete 原有的 Buffer
if (pType != NULL)
{
delete [] pType;
pType = NULL;
}
// 建立並檢查 Buffer
pType = new Type[iSize];
if (pType == NULL)
return false;
// 清除內容
memset(pType, 0, sizeof(Type)*iSize);
}
catch (...)
{
// error
}
return true;
}
--
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄Timyau▄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.133.252.2
→
07/13 10:58, , 1F
07/13 10:58, 1F
→
07/13 10:59, , 2F
07/13 10:59, 2F
→
07/13 11:05, , 3F
07/13 11:05, 3F
推
07/13 12:24, , 4F
07/13 12:24, 4F