读书人

一个函数模版的有关问题希望

发布时间: 2012-02-05 12:07:15 作者: rapoo

一个函数模版的问题,希望高手指点
下面是一个利用函数模版处理栈的初始化问题。目的是想在抽象函数内部仍然可以使用抽象类型,可是编译不通过,不知该如何实现,希望高手指点。
#include "stdio.h "
#include "malloc.h "
typedef struct ElemType_int
{
int a;
}ElemType_int;
typedef struct ElemType_float
{
float a;
}ElemType_float;
typedef struct stack_int
{
ElemType_int *data;
stack_int *next;
}stack_int;
typedef struct stack_float
{
ElemType_float *data;
stack_float *next;
}stack_float;

template <typename stack,typename ElemType>
void init(stack *s);

//template <typename stack,typename ElemType>
//void change(stack *s1,stack *s2);

void main()
{
stack_int *s_int;
stack_int *s_float;

init(s_int);
init(s_float);
}

template <typename stack,typename ElemType>
void init(stack *s)
{
s-> data=(ElemType *)malloc(20*sizeof(ElemType));
}

[解决办法]
单步调试时会发现,在init中根本没有对data开辟空间成功
我在vs2005运行是正确的,空间分配是成功的。

读书人网 >C++

热点推荐