BYTE指针的初始化??

lij2010 2009-07-23 11:45:04
BYTE 在MFC中是这样定义的
typedef unsigned char BYTE;

我在程序中定义:
BYTE* pAviData;

然后:
pAviData = new BYTE[framenum[0]]; ////出错啦!!!!!
memset(pAviData,0,framenum[0]);
framenum 是一个int指针,已获取到值。


程序运行时在 pAviData = new BYTE[framenum[0]]; 出错,写错误。无效指针,应该是指针没有被初始化。
请问各位高手BYTE 指针应该怎么给初始化呢?谢谢谢谢!!!
...全文
487 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yayafu 2009-07-23
  • 打赏
  • 举报
回复
有缓冲区溢出改变了framenum的值,所以是无效指针了.不信把
pAviData = new BYTE[framenum[0]]; 改成 int len = framenum[0];你看看len是正确的值吗?????!!!!!
marrco2005 2009-07-23
  • 打赏
  • 举报
回复

pAviData = new BYTE[2]; ////出错啦!!!!!
memset(pAviData,0, 2 * sizeof(BYTE) );


先用常数测试,如果通过,那就是framenum有问题
lij2010 2009-07-23
  • 打赏
  • 举报
回复

framenum定义是一个int型指针,

framenum = new int[m_sbnum];
memset(framenum,0,m_sbnum*sizeof(int));

framenum[i] = m_sb[i];
framenum应该不会有问题,读写正常。

BYTE的初始化是否有问题呢?
lwykj 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 lij2010 的回复:]
BYTE  在MFC中是这样定义的
typedef unsigned char      BYTE;

我在程序中定义:
    BYTE* pAviData;

    然后:
      pAviData = new BYTE[framenum[0]];  ////出错啦!!!!!
      memset(pAviData,0,framenum[0]);
      framenum 是一个int指针,已获取到值。


程序运行时在  pAviData = new BYTE[framenum[0]];  出错,写错误。无效指针,应该是指针没有被初始化。
请问各位高手BYTE 指针应该怎么给初始化呢?谢谢谢谢!!!
[/Quote]

无效指针应该说的是这个吧
framenum
lij2010 2009-07-23
  • 打赏
  • 举报
回复
framenum[0]的值不是一定的,根据输入会改变。我在调试时framenum[0]=2
qiangorqiang 2009-07-23
  • 打赏
  • 举报
回复
framenum[0]的值是多少?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧