OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3144|回复: 3

malloc函数不解?

[复制链接]

37

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2015-12-31
在线时间
108 小时
发表于 2016-4-28 16:06:18 | 显示全部楼层 |阅读模式
1金钱
想在程序中定义一个较大的二维数组采用动态内存分配函数malloc分配内存并且释放;不成功,请指教//                                                                                   uint8_t ** DataPack;                                                                                          DataPack=(uint8_t **)malloc(12);     
                                                                                         for(  i=0;i<12;i++)
                                                                                         {
                                                                                               
                                                                                                         DataPack[i]=(uint8_t *)malloc(12);      
                                                                                         }
当接收开始的时候开始接收数据并存到开辟的二维数组中
                                        DataPackCpy((uint8_t *)(DataPack+12*Packcnt++),&UART_Rx_data[4],LINKI2UBOOTLEN);

存储函数定义
void DataPackCpy(uint8_t *p,uint8_t *arr,uint8_t len)
{
        uint8_t i;
       
        for(i=0;i<len;i++)
        {
                *p++=*arr++;
        }

}


存储完成后解析并释放内存
                                                for( i=0;i<12;i++)
                                                {
                                                                free(DataPack[i]);
                                                }
                                                free(DataPack);  

不解,调试不成功???




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

317

帖子

0

精华

高级会员

Rank: 4

积分
863
金钱
863
注册时间
2015-2-12
在线时间
354 小时
发表于 2016-4-28 16:55:03 | 显示全部楼层
请问,楼主程序是操作系统下么?
回复

使用道具 举报

37

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2015-12-31
在线时间
108 小时
 楼主| 发表于 2016-4-28 17:51:26 | 显示全部楼层
不在 裸机
回复

使用道具 举报

37

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2015-12-31
在线时间
108 小时
 楼主| 发表于 2016-4-28 17:54:29 | 显示全部楼层
不好意思这句写错啦
DataPackCpy((uint8_t *)(DataPack+12*Packcnt++),&UART_Rx_data[4],LINKI2UBOOTLEN);
改成
DataPackCpy((uint8_t *)(DataPack+Packcnt++),&UART_Rx_data[4],LINKI2UBOOTLEN);
不知为啥不行?请指教
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 15:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表