69,371
社区成员
发帖
与我相关
我的任务
分享
//C++
template<typename T>
T *get_array(int length)
{
return new T[length];
}
/* C */
#include<stdlib.h>
void *get_array(int typesize, int length)
{
return malloc(typesize * length);
}
使用(以int p[100]为例):
//C++
int *p = get_array<int>(100);
//C
int *p = (int *) get_array(sizeof(int), 100);
struct A
{
int sz;
double data[1];
};
A* foo(unsigned int sz)
{
if(!sz) sz = 1;
A* p = (A*)malloc(sizeof(A) + sizeof(double) * (sz-1));
if(p) p->sz = sz;
return p;
}