我有一个函数,它将内存分配给一个指针,如下所示:
但是使用该函数时出现了错误,例如:
void initializeImageBuffer(unsigned char **image, int w, int h)
{
if (*image != NULL)
delete[] *image;
*image = new unsigned char[w * h];
}
现在我想使用函数模板来泛化参数类型(无符号字符/整数/双精度浮点数)。以下是我的做法:
template<typename T, int, int>
void initializeImageBuffer(T **image, int w, int h)
{
if (*image != NULL)
delete[] *image;
*image = new T[w * h];
}
但是使用该函数时出现了错误,例如:
unsigned char* image;
initializeImageBuffer(&image, 200, 200);
这些参数类型没有重载函数的实例。 参数类型为(unsigned char **,int,int)。