C语言中关于结构申请内存的问题

2019-07-20 02:39发布

typedef struct BaseTask
{
    uint8_t* datas;
    int framdId;
    uint8_t cmdCode;
    uint8_t dataLength;
    Feedback* feedBack;
} BaseTask;

BaseTask* pBaseTask = (BaseTask*) malloc(sizeof(BaseTask));
为什么这块结构BaseTask是需要申请一块内存的,而后再进行数据操作,而有的结构比如,
typedef struct AgvState
{
    int direction;
    enum ErrorState errorCode;
...
} AgvState;
简单声明AgvState _agvState;这个对象直接可以_agvState.direction=0x2342; 不申请内存直接这么用?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
edmund1234
1楼-- · 2019-07-20 07:42
lafayet 发表于 2019-4-10 20:41
1)这两种操作除了暂时用的可以删除外 还有其他方面的差异吗?
2)AgvState.direction=0x01233; 这样貌 ...

1) 没想到有什么差别
2) 想要在客厅放台电视,得先把房子建了
AgvState _agvState; 这是建房子
_agvState.direction=0x2342 在客厅放台电视
Psheng
2楼-- · 2019-07-20 07:53
 精彩回答 2  元偷偷看……
edmund1234
3楼-- · 2019-07-20 12:57
 精彩回答 2  元偷偷看……
lafayet
4楼-- · 2019-07-20 15:30
edmund1234 发表于 2019-4-10 17:59
有的对象, 只是暂时用一下, 之后就不用, 便应用申请内存的方法,到用完后可以释放了它, 它就不再占内存 ...

1)这两种操作除了暂时用的可以删除外 还有其他方面的差异吗?
2)AgvState.direction=0x01233; 这样貌似也可以吧?为什么需要声明AgvState _agvState;通过_agvState.direction=0x2342访问呢?

一周热门 更多>