[C语言] 新手C语言指针问题求助

[复制链接]
 楼主| 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

粉丝

3

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部