c++-C ++ CXX0030: 错误: 无法计算表达式的值

问题描述

C ++ CXX0030: 错误: 无法计算表达式的值
       std::vector<VmbUchar_t> *  v=NULL;
            v = new  std::vector<VmbUchar_t>;
           v=( std::vector<VmbUchar_t> *)malloc(100);
                dateInfo di ;
           di.frameId=nFrameID;//nFrameID会自动+1
           di.v=v;
        memcpy(di.v,&TransformedData,100);//&TransformedData 第三方获取
     q.push(di);
         if(q.size()>4){
              dateInfo vv  =q.front();
               std::cout<<vv.frameId<<"OTAD : "<<(*vv.v)[0]<<"n" ;
                       free(vv.v);
                    q.pop();
              }

            }

q是全局队列 定义在其他文件
 std::queue<dateInfo> q;
 typedef  struct

{

std::vector<VmbUchar_t> *  v;
VmbUint64_t frameId;

} dateInfo;
extern std::queue q;

程序跑一段时间 就会报错 : [0] CXX0030: 错误: 无法计算表达式的值

如图看 frameid325~328的地址还在 但是内容已经没了 。 如何解决 在线等

解决方案

之前的数据全部正常 到 325的时候 报错了。 队列里面有5组数据 。 PUSH 进去的 最新的 是 frameId 329 (还是有数据的) ,之前的4个却空了。

解决方案二:

有人知道如何解决吗

解决方案三:

是不是有其他线程等在修改这个数据,注意加锁等

解决方案四:

感觉这代码有点危险,代码太少了,多放点出来

解决方案五:

主要问题是 队列里的值会自动被清空(队列里 放了 ID 和 VECTOR, 只有VECTOR会被清空)。 每次都是跑一段时间后 ,队列数据会清空好烦恼

解决方案六:

v = new std::vector;
这条语句是不是多余?
后面需要delete释放吗?

时间: 2024-09-20 07:41:24

c++-C ++ CXX0030: 错误: 无法计算表达式的值的相关文章

asp.net-Response.End() 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。

问题描述 Response.End() 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值. public void Write(string obj){ Response.Clear(); Response.Write(obj); HttpContext.Current.ApplicationInstance.CompleteRequest(); Response.End();} AJax请求自己的后台页面后台输出参数Write(""1"");报错

无法watch-当前方法的代码已经过优化 无法计算表达式的值

问题描述 当前方法的代码已经过优化 无法计算表达式的值 网上找的解决方案是在项目属性里不要勾选 代码优化 可是我的项目一直都没有勾选过 解决方案 你从哪看出来我使用了response.end 和 HttpContext.Current.ApplicationInstance.CompleteRequest 结束 ???? 解决方案二: 这种情况一般是使用了response.end,并将代码放在try catch里,解决办法就是将response.end去掉或正如楼主用HttpContext.Cu

C#动态编译计算表达式的值

C#动态编译计算表达式的值,是通过System.CodeDom.Compiler命名空间下的相关类来实现的.其步骤大致为: 1.将表达式包装成为可编译的C#代码 2.使用反射调用上一步编译的代码. 示例如下:在界面上放一个TextBox,用来输入表达式:放一个按钮,用来相应用户点击,以进行表达式的计算:在另外一个TextBox中显示计算结果.对应的xaml代码如下: <Window x:Class="SampleCodeDemo.MainWindow" xmlns="h

语言决不是语法的不同之.NET 版本计算表达式的值

语法 很多人会说语言只是语法的差异,事实上,大家忽略了一点选择了一种语言,语言的提供者一定会提供很多的系统库给这个语言. 接下来一个简单的例子来结合Jscript.net 和 C# 来实现对一个表达式的计算. 问题要求: 输入一串简单的表达式,输出值.比如2+4*7 返回30 注意我们全部用.net 去实现,呵呵. 1.新建一个jscript文件, CustomEval.js // JScript source codeclass CustomEval{static function eval(

求助 关于 本机框架位于堆栈顶部,因此无法计算表达式的值

问题描述 程序是点击屏幕上的按钮返回数据库中MyClass表中数据的个数代码如下:publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){stringsql="selectcount(*)fromMyStudent";MessageBox.Show(SqlHelper.ExecuteScalar(sql,Comm

stack计算表达式的值

9.52 使用stack对象处理带圆括号的表达式.遇到左圆括号时,将其标记下来.当你在一个左括号之后遇到右圆括号时,弹出stack对象中这两边括号之间的元素,直到遇到左括号,将左括号也一起弹出栈. 接着在stack对象中压入一个值,用以表明这个用一对圆括号括起来的表达式已经被替换. 程序如下: #include<iostream> #include<stack> #include<string> using namespace std; int main() { sta

《Python游戏编程快速上手》一2.2 计算表达式

2.2 计算表达式 当计算机求解表达式10 + 5并且得到值15的时候,它就已经计算了这个表达式.计算一个表达式就是把表达式规约为一个数字,就像解答一道数学题而把问题简化成一个数字一样:数字就是答案.表达式10 + 5和表达式10 + 3 + 2的计算结果都是15. 表达式可以是任意大小的,但它们总是会求解得到一个数字.即便单个值也可以是表达式:表达式15的计算结果就是值15.例如,表达式8 * 3 / 2 + 2 + 7 -9,通过如下步骤,其计算结果是值12.0. 8 * 3 / 2 + 2

《Python游戏编程快速上手》——2.2 计算表达式

2.2 计算表达式 当计算机求解表达式10 + 5并且得到值15的时候,它就已经计算了这个表达式.计算一个表达式就是把表达式规约为一个数字,就像解答一道数学题而把问题简化成一个数字一样:数字就是答案.表达式10 + 5和表达式10 + 3 + 2的计算结果都是15. 表达式可以是任意大小的,但它们总是会求解得到一个数字.即便单个值也可以是表达式:表达式15的计算结果就是值15.例如,表达式8 * 3 / 2 + 2 + 7 -9,通过如下步骤,其计算结果是值12.0. 8 * 3 / 2 + 2

vc++2010创建项目失败,无法计算xxx处的属性表达式的值

问题描述 vc++2010创建项目失败,无法计算xxx处的属性表达式的值 vc++2010创建项目失败,报错如下图,求教高手提点. 解决方案 是新建的项目的话,建议重装下vs,再不行重装下系统.