• 4753阅读
  • 2回复

救命  - -缓冲区哪里错了。。。 [复制链接]

上一主题 下一主题
离线zhangyujin78
 
只看楼主 正序阅读 楼主  发表于: 2009-09-14
         char BUF[1024*32]; //定义的 BUF
             int b;
             int a;
             int c;
             int x;
             fstream fp;
             fp.open("2.mp4");
            for(b=0;b<1024*32;b=sizeof(&BUF))//这里b=sizeof(&BUF)感觉也比较别扭的 会不会有错。。
           {
            a=b+dwBufSize;//校验是不是大于BUF长度的
             if(a<1024*32)
            {
                memcpy(&BUF,pBuffer,dwBufSize); //将pBuffer拷贝到BUF里面,dwBufSize是pBuffer的长度。
            }
            else//最后个包的处理
             {
               memcpy(&BUF,pBuffer,1024*32-sizeof(&BUF));
              x=1024*32-sizeof(&BUF); //BUF最后空余的长度大小。
               if(!fp)
               {
                printf("can not open 2.mp4!\n");
               }
                   for(c=0;c<1024*32;c++)
                     {
                        fp.write(BUF,1024*32);
                     }
                  flush(fp);//清空BUF是这样写的吗。。?
                   memcpy(&BUF,&pBuffer[x],a-1024*32);//将最后个数据包剩下的数据的拷贝,从BUF头开始。这里是不是错了。。我把最后个包截成两断分别拷贝的。
                }

            }
   高手们看看还有啥错误没。。。3Q~
[ 此帖被zhangyujin78在2009-09-14 17:37重新编辑 ]
离线shiroki

只看该作者 2楼 发表于: 2009-09-14
sizeof不是这么用的哦, 汗
应该用变量记录往buf里写了多少个byte
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-14
for(b=0;b<1024*32;b=sizeof(&BUF))//这里b=sizeof(&BUF)感觉也比较别扭的 会不会有错。。

你自己不都发现问题了么?
快速回复
限100 字节
 
上一个 下一个