打印
[C语言]

新手C语言指针问题求助

[复制链接]
603|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nervermore|  楼主 | 2015-12-1 11:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MCU与模块串口通讯,然后MCU去解析串口数据。
我把串口数据存放在指针fd中,
uint8_t* fd;
*fd++= UARTCharGet(UART0_BASE);//获取串口数据

windows下有个read函数ssize_t read(uint8_t* fd, void *buf, size_t count),从fd中读取count个字节存放在buf中,并返回读出的字节数,如果字节数不足count,则返回当前读取的字节数。
我是这样写的:
ssize_t read(uint8_t* fd, void *buf, size_t count)
{
        size_t i;
       

        for(i=0;i<count;i++)
        {
                if(strcmp(fd+i,"")==0)
                {
                        memcpy(buf, fd, i);
                        return i;
                }
        }
        memcpy(buf, fd, count);
        return count;
}
ssize_t readCount;
readCount = read(fd, buffer, BUFFER_SIZE);
fd = fd+readCount;
从fd中读取BUFFER_SIZE个字节存放到buffer中。

请问大家指针的用法是否正确?

相关帖子

沙发
yizi0000| | 2015-12-1 12:39 | 只看该作者
指针没有赋值,指向某个存储区域。

使用特权

评论回复
板凳
nervermore|  楼主 | 2015-12-1 13:25 | 只看该作者
yizi0000 发表于 2015-12-1 12:39
指针没有赋值,指向某个存储区域。

谢谢,把fd定义成:uint8_t* fd=(uint8_t *)0x000207ff;
其中0x000207ff是flash没有用到的一处起始地址。
对吗?

使用特权

评论回复
地板
nervermore|  楼主 | 2015-12-1 15:10 | 只看该作者
:'(

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

26

帖子

0

粉丝