草庐IT

c++ - 弹性/Bison : Bad token management?

我的词法分析器和解析器有问题。首先,在我的词法分析器中有这样一行:"if"beginScope(stOTHER);returnIF;在我的解析器中:stmt:IF'('exp')'stmts...stmts:stmt|'{'stmt_list'}'|'{''}'在这样的代码中:if(sth){dosth;}if(other){doothersth;}beginScope将被调用两次,因为(我认为)Bison不知道if语句的结尾在哪里,所以当它找到IF标记时,他将其视为if语句的结尾,并再次读取它以开始另一个if语句...请帮帮我... 最佳答案

c++ - Bad_alloc 没有在我期望的时候抛出

考虑这个简单的程序:#include#includeintmain(void){conststd::size_tsize=1评论我尝试分配一些荒谬的内存:(1==8GB我添加安全检查捕捉std::exception,应该catchstd::bad_alloc除其他异常(exception)...检查它是否不为空(即使要使此检查真正有意义,我需要a=new(std::nothrow)int[size]-但无论我如何分配内存,它都不起作用)环境安装内存:2GB操作系统:Debian架构:32位问题问题是程序没有提前退出,而是做了这样的事情:rr-@burza:~$g++test.cpp-o

c++ - Excel VBA : "Run-time error ' 4 9': Bad DLL calling convention" calling C++ dll

我正在尝试从Excel-VBA调用C++DLL。我知道DLL函数正在执行,因为我插入了fputs()记录调用以跟踪执行情况,并且标记显示在我的日志文件中。问题是,每当DLL函数返回时,我都会收到错误49。这是VBA中的声明:PrivateDeclareFunctionInitMCRLib"MCRBoilerplate.dll"Alias"?initMCR@@YGXXZ"()这是C++中的声明__declspec(dllexport)void__stdcallinitMCR(){...}为什么我会收到此错误49行为,即使DLL调用似乎正常运行? 最佳答案

c++ - 处理 bad_alloc 时使用 cerr 是否安全?

这样使用std::cerr安全吗?try{Something();}catch(std::bad_alloc){cerr它是否使用动态内存?如果失败,它会抛出异常还是什么都不输出? 最佳答案 简单案例有一个失败的大分配-可能是由于程序员的错误-intmain(){try{std::size_tbytesToAllocate;std::cin>>bytesToAllocate;std::unique_ptrptr{newchar[bytesToAllocate-1]};//ops,ifuserenters0orextractionfa

c++ - 关于指针上 std::vector::push_back 中的 EXC_BAD_ACCESS 错误的问题

std::vector当然很棒,嘿?不过,我在使用push_back添加元素时遇到了EXC_BAD_ACCESS。(我曾经遇到过类似的问题,在SO上查找,解决了!遗憾的是,这似乎是一个不同的问题。)classBackgroundGroupsHandler{public:voidaddBeat(Beat*b);vectorgroups;};(Beat是一个简单的类似结构的类,它携带一些数据。)classbeat_display_group{public:voiddraw_me(float,float,float,int);beat_display_group(intrhythmInt,i

c++ - 链接到 MFC 项目的没有 mfc 的 C++ 静态库是否抛出 bad_alloc 或 CMemoryException*?

我正在为MFC应用程序开发一个大型、老化的代码库。随着时间的推移,该代码已被许多开发人员处理,因此,我们在整个代码中采用三种不同的方式来处理new分配失败的可能性。第一种方法是在new的结果上测试NULL。我们不使用nothrownew.obj,所以这显然是一个需要清除的错误。第二个是捕获CMemoryException*(是的,编译器中启用了C++异常)。据我了解,MFC覆盖了标准的operatornew,而是抛出了这个东西。我相当确定这第二种方法在MFC应用程序本身中是正确的。MFC使用其奇怪的CMemoryException抛出版本覆盖新的。最后一个来self们的基础人员,他们精

c++ - 子类化 stringstream 给出 "0x401bad ABC"而不是 "Foo ABC"

#include#include#includeclassA:publicstd::stringstream{public:A(){}~A(){std::cout我期待程序打印:FooABC代替0x401badABC为什么打印0x401badABC?g++--versiong++(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3 最佳答案 operator分两部分实现:字符数据的重载是自由函数。其他重载是std::ostream的成员.我们担心firstone对于那个字符串文字。正如您在链接中看到的,所有重载都采用

iphone - 带有 NSFetchedResultsController 的 EXC_BAD_ACCESS

试图追踪我在NSZombieEnabled时遇到的这个错误。当获取的结果Controller尝试执行获取时,我得到一个EXC_BAD_ACCESS。调试器说:-[CFNumberretain]:messagesenttodeallocatedinstance0x6e88d10回溯说:#00x014bbe1ein___forwarding___()#10x014bbce2in__forwarding_prep_0___()#20x0145c490inCFRetain()#30x0147929ainCFNumberCreate()#40x00b221edin-[NSPlaceholderN

ios - 使用 NSString getCString 时出现 EXC_BAD_ACCESS 错误

我正在尝试解析一些HTML。我使用stringWithContentsOfURL来获取HTML。我试图将其加载到字符数组中以便解析它,但在调用getCString时我因EXC_BAD_ACCESS错误而崩溃。相关代码如下:-(void)parseStoryWithURL:(NSURL*)storyURL{_paragraphs=[[NSMutableArrayalloc]initWithCapacity:10];_read=NO;NSError*error=nil;NSString*originalFeed=[NSStringstringWithContentsOfURL:storyU

ios fwrite 函数 EXC_BAD_ACCESS

我尝试在iPhone应用程序中使用fwrite(C函数)。出于自定义原因,我不想使用writeToFile,而是使用fwriteC函数。我在didFinishLaunchingWithOptions函数中写了这段代码:FILE*p=NULL;NSString*file=[NSHomeDirectory()stringByAppendingPathComponent:@"Documents/Hello.txt"];charbuffer[80]="HelloWorld";p=fopen([fileUTF8string],"w");if(p!=NULL){fwrite(buffer,strl