指针问题

hlhfootball 2017-04-20 06:08:49

U8 * SQL_GetBlob(sqlite3_stmt * stmt, const char * Title, U16 u16Size);

typedef struct
{
unsigned char csc[3][8][510];
}ST_FACTORY_COLSHD_SETTING;
ST_FACTORY_COLSHD_SETTING m_stFactoryColshdSetting;

U8 * pValBuff = NULL;
pValBuff = (U8 *)malloc(510);
if(!pValBuff)
{
printf("helhc malloc pValBuff error!\n");
return;
}

pValBuff = SQL_GetBlob(pSqlstmt, "DV_PANEL_NUMS_COLSHD_NUM", 510);
memcpy((void *)m_stFactoryColshdSetting.csc[cI][cJ],(void *)pValBuff,510);

free(pValBuff);
pValBuff = NULL;

以上代码编译没有错误,但是实际运行时,机子崩溃。

但是按照下面的代码运行,没有问题。
请问是什么原因。

U8 * pValBuff = NULL;

pValBuff = SQL_GetBlob(pSqlstmt, "DV_PANEL_NUMS_COLSHD_NUM", 510);
memcpy((void *)m_stFactoryColshdSetting.csc[cI][cJ],(void *)pValBuff,510);
...全文
213 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2017-04-21
  • 打赏
  • 举报
回复
A pValBuff = (U8 *)malloc(510); 分配了内存 B pValBuff = SQL_GetBlob //改写了指针 C free(pValBuff); 1释放了 由 SQL_GetBlob 返回的内存 这样合适吗? 2 A分配的内存泄漏了
uid123 2017-04-20
  • 打赏
  • 举报
回复
是不是不清空缓存让堆栈溢出了。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧