
不能将wchar_t * 类型的值分配到wchar_t * 类型的实体
intdtt_get_name(data_table_t*tbl){wchar_t**name;*name=tbl->GetName();//不能将wchar_t*类型的...
int dtt_get_name(data_table_t* tbl)
{
wchar_t **name;
*name = tbl->GetName();//不能将wchar_t * 类型的值分配到wchar_t * 类型的实体
}
const wchar_t* CDataTable::GetName()
{
wchar_t* mTblName[128];
return mTblName;
} 展开
{
wchar_t **name;
*name = tbl->GetName();//不能将wchar_t * 类型的值分配到wchar_t * 类型的实体
}
const wchar_t* CDataTable::GetName()
{
wchar_t* mTblName[128];
return mTblName;
} 展开
2个回答
2012-03-06
展开全部
这里是函数内存空间的传递问题了。问题中GetName函数不能传递内存空间,所以你在调用GetName赋值给*name时就会报错了。
追问
那请问一下 该如何解决呢 而且 如果我把const 去掉 就好了 这是为什么呢
追答
函数内的变量的空间是在栈内存中申请空间的,在函数结束时就会释放。
你可以这样解决:
const wchar_t* CDataTable::GetName()
{
wchar_t* mTblName[128] = (wchar_t*) malloc(128*sizeof(wchar_t*));//malloc申请的空间是在堆区的,在程序结束时会释放。但是记得,在用完之后要调用free释放。
return mTblName;
}
int dtt_get_name(data_table_t* tbl)
{
wchar_t **name;
*name = tbl->GetName();//不能将wchar_t * 类型的值分配到wchar_t * 类型的实体
free(*name);//调用free释放。
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询