STM32F429内存管理,请教原子哥和各位大神

2019-07-20 14:23发布

大家好,情况是这样的。我现在定义了一个结构体二维数组   temp[4][252],麻烦看下下面这样写能不能用。typedef struct TEMP
{                                               
    u16 addr;     
    u16 type;     
    u16 yanshi;             
    u16 pingbi;     
    u16 Sczhao[3];      
    u32 azdd[10];       
    u16 lmd;
    u16 fhfq;
    u16 zxph;       
} TEMP ;

TEMP *temp[4][252];

在主函数里初始化的时候申请外部内存   temp[4][252]=mymalloc(1,2048*31);//申请62K字节内存
这样的话*temp[4][252]的两个左边变化的时候,数据慧慧覆盖呀?比如*temp[1][252]的数据会被*temp[4][252]的数据会覆盖吗?请指教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
ljz1987cj
1楼-- · 2019-07-20 19:39
 精彩回答 2  元偷偷看……
zmingwang
2楼-- · 2019-07-20 22:44
你那4*252个指针是在mymalloc这个函数中赋值的么,如果是的话,每个指针指向的空间是独立的,只要在操作的时候不溢出就不会覆盖.
如果你代码里真是像这样写:temp[4][252]=mymalloc(1,2048*31);想一次性赋值,嗯......确定不是在搞笑?
zmingwang
3楼-- · 2019-07-20 23:33
 精彩回答 2  元偷偷看……
zhoujianwen
4楼-- · 2019-07-21 00:25
 精彩回答 2  元偷偷看……
玄子
5楼-- · 2019-07-21 00:58
zmingwang 发表于 2017-5-19 17:23
你那4*252个指针是在mymalloc这个函数中赋值的么,如果是的话,每个指针指向的空间是独立的,只要在操作的时候 ...

mymalloc(1,2048*31);
原子哥这个函数的作用就是赋给内存地址的初始值吧?
玄子
6楼-- · 2019-07-21 02:36
zmingwang 发表于 2017-5-19 17:56
我想你的意思应该是二维数组指针的定义,申请一片内存,再用一个二维数组来访问.我给你个参考写法:
typedef  ...

对,就是这个意思,因为我定义的:temp[4][252]都要存放数据,现在用SDRAM分配内存。原子哥的mymalloc(1,2048*31)这个函数是赋给内存地址首地址,所以有点蒙。

一周热门 更多>