找回密码
 立即注册
查看: 216|回复: 2

求助STC8H1K28调用malloc有问题

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2024-5-24 23:11:40 | 显示全部楼层 |阅读模式
程序如下
unsigned char *p

   Uart2Init();
    IE2 = 0x01;
    EA = 1;
    Uart2SendStr("Uart Test !\r\n");
                p=malloc(10);
                p[0]=0xaa;
                Uart2Send(p[0]);
    while (1)
    {
        if (rptr != wptr)
        {
            Uart2Send(buffer[rptr++]);
            rptr &= 0x0f;
        }
    }
上述函数 正常来说Uart2Send(p[0]);这里打印出来应该是十六进制的0xaa,但是实际发现是一个异常值05,有没有大佬帮忙解答下。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-5-25 09:05:48 | 显示全部楼层
我记得C51 不能直接使用malloc函数,需要定义一个数组,然后使用个什么函数(特定的)把这个数组初始化,当作堆来用。具体的可以百度 C51使用动态分配。。要不就等等大佬的回复。。反正是不能直接使用。。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:396
  • 最近打卡:2025-05-03 11:16:14

16

主题

702

回帖

2478

积分

金牌会员

积分
2478
发表于 2024-5-25 13:50:29 | 显示全部楼层
没有用过这个函数,对于51单片机,最好不要用
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 12:46 , Processed in 0.158664 second(s), 60 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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