鱼C论坛

 找回密码
 立即注册
查看: 3029|回复: 8

问个简单的功能问题哈

[复制链接]
发表于 2017-1-11 12:09:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我看见很多地方都是定义一个结构体,然后求出他的大小赋值给变量,那个,求一个结构体的大小有什么用呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-11 12:28:46 | 显示全部楼层
感觉用处很多:
1、指针跨度
2、定位结构体中各元素的参考位置
3、衡量数据是否溢出结构体存储空间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-11 13:27:15 | 显示全部楼层
zealstar 发表于 2017-1-11 12:28
感觉用处很多:
1、指针跨度
2、定位结构体中各元素的参考位置

能不能说的具体点,感觉没听懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-11 13:30:35 | 显示全部楼层
比如这个
typedef struct  
{  
    int startcodeprefix_len;      //! 4 for parameter sets and first slice in picture, 3 for everything else (suggested)  
    unsigned len;                 //! Length of the NAL unit (Excluding the start code, which does not belong to the NALU)  
    unsigned max_size;            //! Nal Unit Buffer size  
    int forbidden_bit;            //! should be always FALSE  
    int nal_reference_idc;        //! NALU_PRIORITY_xxxx  
    int nal_unit_type;            //! NALU_TYPE_xxxx      
    char *buf;                    //! contains the first byte followed by the EBSP  
} NALU_t;




n = (NALU_t*)calloc (1, sizeof (NALU_t));  
    if (n == NULL){  
        printf("Alloc NALU Error\n");  
        return 0;  
    }  
  
    n->max_size=buffersize;  
    n->buf = (char*)calloc (buffersize, sizeof (char));  
    if (n->buf == NULL){  
        free (n);  
        printf ("AllocNALU: n->buf");  
        return 0;  
    }  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-11 18:37:09 | 显示全部楼层
本帖最后由 zealstar 于 2017-1-11 18:43 编辑
不知白天和叶 发表于 2017-1-11 13:30
比如这个
typedef struct  
{  


额……这个我还看不懂呢,我结构体那章才看了个开头……

上面的作用我都是猜测的……

而且,上面这个n貌似不是结构体大小……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-11 20:45:44 | 显示全部楼层
本帖最后由 fc1735 于 2017-1-11 20:47 编辑

这是内存分配的问题,一般函数内定义的变量都是移动栈指针,在栈段中储存资料,函数返回之后栈指针回到初始位置,所以有时就需要自己另外申请一段不会随意被修改的内存空间使用,部分时候是因为栈能存放的空间有限,既然你要申请一段不会被任意修改的内存来使用,就一定要给出要申请的大小阿。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-11 22:10:46 From FishC Mobile | 显示全部楼层
zealstar 发表于 2017-1-11 18:37
额……这个我还看不懂呢,我结构体那章才看了个开头……

上面的作用我都是猜测的……{:10 ...

哈哈  开头就出来装逼~

定义结构体大小应该是为了动态创建结点吧。
创了结点输入数据  还有*next指针实行单链表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-26 17:09:35 | 显示全部楼层
用 sizeof 就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-4 14:25:37 | 显示全部楼层
只是一个属性,放在结构体中方便使用。
一般就是为了表示这个结构体的大小,对内存分配大小上有一个表示。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 19:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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