CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

百思不解的问题,高分求救!!!

楼主ldcr(龙的传人)2005-06-03 12:35:41 在 C/C++ / C++ 语言 提问

我写的以下程序  
  BOOL   DataStore(unsigned   char   *buf,   long   size)  
  {  
  pbuf=(unsigned   char   *)malloc(size);  
  //for(long   i=0;i<size;i++)pbuf[i]=buf[i];  
  memcpy(pbuf,buf,size);  
  return   TRUE;  
  }  
  BOOL   BrightAjust(unsigned   char   *buf,   long   size,   int   vB)  
  {  
   
  if(pbuf==NULL)DataStore(buf,size);  
  for(long   i=0;i<size;i++)  
  {  
  if(buf[i]+vB>255)buf[i]=255;  
  else   if(buf[i]+vB<0)buf[i]=0;  
  }  
  return   TRUE;  
  }  
  运行时弹出错误,Error:   expression   cannot   be   evaluated  
   
  why??????????????????????????? 问题点数:100、回复次数:10Top

1 楼ldcr(龙的传人)回复于 2005-06-03 12:37:42 得分 0

pbuf是全局变量  
  并且初始pbuf=NULL;Top

2 楼mccxj(老鼠不逛街)回复于 2005-06-03 12:54:46 得分 0

BOOL   BrightAjust(unsigned   char   *buf,   long   size,   int   vB)  
   
  if(pbuf==NULL)DataStore(buf,size);//这里有问题?  
  buf。。没分配?Top

3 楼Cuiql(向前冲,向后看)回复于 2005-06-03 13:00:18 得分 0

buf。。没分配Top

4 楼ldcr(龙的传人)回复于 2005-06-03 13:05:37 得分 0

是那里有问题,不过把改成if(pbuf==NULL)AfxMessageBox("xx");  
  同样是这里出错  
  Top

5 楼ldcr(龙的传人)回复于 2005-06-03 13:10:11 得分 0

前面是这样的  
  ......  
  unsigned   char   *   buf;  
  buf=(unsigned   char   *)malloc(size);  
  .....//对buf附值  
  BrightAjust(buf,size,3);  
  if(buf!=NULL)free(buf);  
  ......Top

6 楼guyaguya(我只愿面朝大海,春暖花开)回复于 2005-06-03 13:13:14 得分 0

BOOL   DataStore(unsigned   char   *buf,   long   size)  
  {  
  //   断点1 pbuf=(unsigned   char   *)malloc(size);  
  //for(long   i=0;i<size;i++)pbuf[i]=buf[i];  
  memcpy(pbuf,buf,size);  
  return   TRUE;  
  }  
  BOOL   BrightAjust(unsigned   char   *buf,   long   size,   int   vB)  
  {  
   
  //   断点2 if(pbuf==NULL)DataStore(buf,size);  
  for(long   i=0;i<size;i++)  
  {  
  if(buf[i]+vB>255)buf[i]=255;  
  else   if(buf[i]+vB<0)buf[i]=0;  
  }  
  return   TRUE;  
  }  
   
  在我标断点的两个地方设两个断点调试一下Top

7 楼qfeng_zhao(鱼儿鱼儿满天飞)回复于 2005-06-03 13:18:10 得分 100

#include   <stdlib.h>  
  #include   <stdio.h>  
  #include   <string.h>  
   
  typedef   int   BOOL;  
  #define   TRUE   1;  
   
  unsigned   char   *pbuf;  
  const   int   bufferSize   =   100;  
   
  BOOL   DataStore(unsigned   char   *buf,   long   size)  
  {  
  pbuf=(unsigned   char   *)malloc(size);  
  //for(long   i=0;i<size;i++)pbuf[i]=buf[i];  
  memcpy(pbuf,buf,size);  
  return   TRUE;  
  }  
  BOOL   BrightAjust(unsigned   char   *buf,   long   size,   int   vB)  
  {  
   
  if(pbuf==NULL){  
  DataStore(buf,size);  
  }  
  for(long   i=0;i<size;i++)  
  {  
  if(buf[i]+vB>255)buf[i]=255;  
  else   if(buf[i]+vB<0)buf[i]=0;  
  }  
  return   TRUE;  
  }  
   
   
  int   main()  
  {  
  unsigned   char   buf[bufferSize];  
  int   i;  
   
  for(i=0;   i<bufferSize;   i++)  
  {  
  buf[i]   =   i*2;  
  }  
   
  BrightAjust(buf,bufferSize,-10);  
   
  for(i=0;   i<bufferSize;   i++){  
  printf("%d     ",   buf[i]);  
  if((i+1)%10==0){  
  printf("\n");  
  }  
  }  
   
  return   0;  
  }  
   
  如果buf在分配的话,没什么问题的,vc6+xp下调试通过Top

8 楼ldcr(龙的传人)回复于 2005-06-03 13:25:11 得分 0

试过了,提示  
  + pbuf CXX0030:   Error:   expression   cannot   be   evaluated unsigned   char   *  
  如果这样  
  BOOL   DataStore(unsigned   char   *buf,   long   size)  
  {  
  pbuf=(unsigned   char   *)malloc(size);  
  //for(long   i=0;i<size;i++)pbuf[i]=buf[i];  
  memcpy(pbuf,buf,size);  
  return   TRUE;  
  }  
  BOOL   BrightAjust(unsigned   char   *buf,   long   size,   int   vB)  
  {  
   
  //   断点2 if(pbuf==NULL)DataStore(buf,size);若屏蔽这一行就可以通过  
  //换成 if(pbuf==NULL)vB++;都会出错,不解!!!  
  for(long   i=0;i<size;i++)  
  {  
  if(buf[i]+vB>255)buf[i]=255;  
  else   if(buf[i]+vB<0)buf[i]=0;  
  }  
  return   TRUE;  
  }  
  Top

9 楼mostideal(三甲)回复于 2005-06-03 13:40:08 得分 0

我没时间试,,帮你顶了。。Top

10 楼ldcr(龙的传人)回复于 2005-06-03 14:01:54 得分 0

据qfeng_zhao(一天到晚游泳的鱼),看来这段程序是没问题。是其它的问题吧  
  原程序是:  
  BOOL   ImagePro::DataStore(unsigned   char   *buf,   long   size)  
  {  
  pbuf=(unsigned   char   *)malloc(size);  
  memcpy(pbuf,buf,size);  
  return   TRUE;  
  }  
  BOOL   ImagePro::BrightAjust(unsigned   char   *buf,   long   size,   int   vB)  
  {  
   
  if(pbuf==NULL)DataStore(buf,size);  
  for(long   i=0;i<size;i++)  
  {  
  if(buf[i]+vB>255)buf[i]=255;  
  else   if(buf[i]+vB<0)buf[i]=0;  
  }  
  return   TRUE;  
  }  
  void   Adjust::OnCustomdrawBright(NMHDR*   pNMHDR,   LRESULT*   pResult)    
  {  
  *pResult   =   0;  
  int   ii=m_Bright.GetPos();  
  if(m_hsi.i!=ii)    
  {  
  s.Format("%d",ii);  
  GetDlgItem(IDC_Br)->SetWindowText(s);  
  m_hsi.i=ii;  
  if(apDoc!=NULL)  
  {  
  unsigned   char   *   pbuf=(unsigned   char   *)malloc(size); apDoc->m_pDIB->Data2Buf(pbuf);  
  datapro->BrightAjust(pbuf,size,ii);  
  if(apDoc->m_pDIB->Buf2Data(pbuf))//改变原图像  
  theApp.pView->OnDraw(theApp.pView->GetDC());//更新视图  
  if(pbuf!=NULL)free(pbuf);  
  }  
  }  
  }Top

相关问题

  • 这是怎么了?百思不解中......100分求救啊!!!
  • 百思不解,新手提个问题,肩高手帮帮手,在线等,解决结帐!!
  • 百思不解的问题
  • 百思不解的问题
  • 百思不解,JBuider是怎样了?
  • 百思不解,请指点迷津
  • 百思不解的问题(菜).
  • 一个百思不解的问题
  • 今天遇到很奇怪的事,百思不解。。。
  • 百思不解的存储过程问题?

关键词

  • vb
  • pbuf
  • apdoc
  • buf
  • malloc
  • unsigned char
  • bool
  • long
  • size
  • else

得分解答快速导航

  • 帖主:ldcr
  • qfeng_zhao

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo