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

ldcr 2005-06-03 12:35:41
我写的以下程序
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???????????????????????????
...全文
203 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-06-03
  • 打赏
  • 举报
回复
BOOL BrightAjust(unsigned char *buf, long size, int vB)

if(pbuf==NULL)DataStore(buf,size);//这里有问题?
buf。。没分配?
ldcr 2005-06-03
  • 打赏
  • 举报
回复
pbuf是全局变量
并且初始pbuf=NULL;
ldcr 2005-06-03
  • 打赏
  • 举报
回复
据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);
}
}
}
mostideal 2005-06-03
  • 打赏
  • 举报
回复
我没时间试,,帮你顶了。。
ldcr 2005-06-03
  • 打赏
  • 举报
回复
试过了,提示
+ 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;
}
qfeng_zhao 2005-06-03
  • 打赏
  • 举报
回复
#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下调试通过
guyaguya 2005-06-03
  • 打赏
  • 举报
回复
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;
}

在我标断点的两个地方设两个断点调试一下
ldcr 2005-06-03
  • 打赏
  • 举报
回复
前面是这样的
......
unsigned char * buf;
buf=(unsigned char *)malloc(size);
.....//对buf附值
BrightAjust(buf,size,3);
if(buf!=NULL)free(buf);
......
ldcr 2005-06-03
  • 打赏
  • 举报
回复
是那里有问题,不过把改成if(pbuf==NULL)AfxMessageBox("xx");
同样是这里出错
xiaoran2267 2005-06-03
  • 打赏
  • 举报
回复
buf。。没分配
内容概要:本文系统研究了并网虚拟同步发电机(VSG)的自适应惯量阻尼调控策略及其对频率动态响应稳定性的影响,聚焦于VSG在并网工况下的惯量与阻尼协同自适应控制机制。通过构建Simulink仿真模型并结合Matlab代码实现,深入分析VSG的动态特性、有功/无功功率响应及电网频率稳定性,采用根轨迹法评估不同调节系数对系统稳定性的敏感性,揭示其支撑电网频率稳定的能力。研究进一步拓展至微电网黑启动、预同步控制、虚拟阻抗技术以及双机VSG间的功率精确分配等关键应用场景,旨在应对高比例新能源接入带来的系统惯量下降与频率稳定挑战,提升电力系统的韧性与可靠运行水平。; 适合人群:具备电力系统分析、自动控制理论及新能源并网技术背景,熟练掌握Matlab/Simulink仿真工具,从事电气工程、能源互联网、微电网控制等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入探究VSG在并网模式下惯量与阻尼参数的自适应协同调控原理与实现方法;②系统分析VSG控制策略对电网频率动态响应过程的影响规律与稳定边界;③通过仿真实践掌握VSG关键控制参数(如虚拟惯量、阻尼系数)的设计、整定及其对系统性能影响的量化评估;④为微电网的自主黑启动、无缝并网及高渗透率可再生能源系统的频率稳定控制提供先进的技术方案与决策依据。; 阅读建议:建议读者结合文中提供的完整Matlab代码与Simulink模型进行动手仿真实验,重点关注控制策略的模块化设计逻辑、参数动态调整过程与系统整体性能之间的关联,务必结合电力系统小信号稳定性分析理论,深入理解根轨迹、特征值等分析结果所蕴含的物理意义,从而实现从理论到实践的贯通。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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