草庐IT

Dereference

全部标签

java - 从 String[] 的 ArrayList 打印一个字符串?

我有一个充满字符串数组的ArrayList,我是这样构建的:String[]words=newString[tokens.length];我的ArrayList中有三个像上面这样的数组:surroundingWords.add(words);surroundingWords.add(words1);surroundingWords.add(words2);等等现在,如果我想在surroundingWords中打印出String数组中的元素...我做不到。我最接近显示String[]数组内容的是它们的地址:[Ljava.lang.String;@1888759[Ljava.lang.St

java - Possible null pointer dereference of 的说明和修复

代码审查工具提示可能在saveSafeScan(...)中取消引用safeScanWarnings的空指针在行if(safeScanWarnings!=Null&safeScanWarnings.size()>0)我想知道这怎么可能?这是因为我们通过引用返回集合吗?protectedvoidsaveSafeScan(finalResponseresponse,finalDtecdtec)throwsdtecException{CollectionsafeScanWarnings=dtec.getSafeScanWarnings();if(safeScanWarnings!=null&&

c++ - 最令人烦恼的解析和指针间接/解引用

最少的代码:structA{A(int=0){}};inti=0,*p=&i;int*foo(){returnp;}intmain(){A();//calls`A::A(int=0)`A(i);//calls`A::A(int=0)`A(*p);//预计至少A((*p))会调用A::A(int=0)。即使在*p周围放置多个大括号,也会将语句视为A*p;。foo相关语句也是如此,其中构造函数A::A(int=0)没有被调用。这是一个demo.问题:为什么连(2)和(4)都被视为声明?语句(3)和(4)中foo的描述是什么? 最佳答案

c++ - 取消引用指针(并返回它)的问题

这里我有一个函数,它创建一个字符串,将它分配给一个字符串指针,然后返回它。我尝试返回一个常规字符串,但效果很好。但是当我整合指针并取消引用它们时,我的程序崩溃了。当我尝试调试它时,这是我收到的消息:Assignment2.exe中0x00024cbf处的未处理异常:0xC0000005:读取位置0xcccccce4的访问冲突。这是我的代码:string*Recipe::getCookingTime()//@intput:none//@output:cookingtimeasastring{stringtemp;stringdisplayHrs;stringdisplayMins;if(

c++可能的空指针取消引用

我对一些代码运行了cppcheck以查找可能的运行时错误。并且它报告了以下情况下可能的空指针取消引用:Foo*x=...//definedsomewhere...Foo*y(x);//possiblenullpointerdereference.编辑:更好的例子for(inti=0;i来自cppcheck的错误消息:[C:\file.cpp:3]:(error)Possiblenullpointerdereference:x-otherwiseitisredundanttocheckifxisnullatline4但我不知道这怎么可能。 最佳答案

c++ - 如何以及何时正确使用 *this 指针和参数匹配?

当我浏览同事编写的代码时,在某些地方,他们使用:this->doSomething();//-->caseAdoSomething();//-->caseB事实上我不确定*this指针的用途...:(另一个参数匹配问题:obj.doOperation();//-->caseC(&obj)->doOperation();//-->caseD其实这两种情况都在执行想要的操作,难道只是一种让代码看起来更复杂的方法吗?您对以上两个问题有何建议?什么时候使用它们比较合适?为什么? 最佳答案 这不是您问题的答案,而是说明两个片段可能做不同的事情

C++:为什么转换为指针然后取消引用有效?

这个问题在这里已经有了答案:Whycastapointertoafloatintoapointertoalong,thendereference?(5个答案)关闭4个月前。最近我一直在研究C++中的套接字,我遇到了这个:*(structin_addr*)&serv_addr.sin_addr.s_addr=*(structin_addr*)server->h_addr;虽然这确实做了我想要的,但我对为什么我不能这样做有点困惑:(structin_addr)serv_addr.sin_addr.s_addr=*(structin_addr*)server->h_addr;既然它变成了一个

c++ - 对 std::atomic::load 的结果使用 Structure dereference(->) 运算符是否安全

在尝试使用std原子指针时,我遇到了以下问题。假设我这样做:std::atomicmyString;////AcanIdothis?myString.load()->size()//BcanIdothis?charmyFifthChar=*(myString.load()->c_str()+5);//CcanIdothis?charmyCharArray[255];strcpy(myCharArray,myString.load()->c_str());我很确定C是非法的,因为myString可能同时被删除。但是我不确定A和B。我认为它们是非法的,因为在执行读取操作时指针可能会被引用。

c++ - 数组错误指针的增量运算符?

我正在尝试一些非常简单的事情,本来应该很简单,但不知何故它让我很困惑......我试图理解++在被视为指针时对数组的影响以及在被视为数组时对指针的影响。所以,intmain(){inta[4]={1,4,7,9};*a=3;*(a+1)=4;*++a=4;//compilererror}1:所以在*(a+1)=4我们设置a[1]=4;//快乐的但是当*++a=4;时,我希望指针a递增1,因为++先于*然后*开始,我们使它等于4。但是这段代码只是行不通...这是为什么?另一个问题:intmain(){int*p=(int*)malloc(8);*p=5;printf("%d",p[0])

c++ - 如何在 C++03 中使用 "dereference a type"?

如何在C++03中获取另一种类型的“解引用类型”?请注意,它可以是其他可取消引用的类型,例如std::vector::iterator.例如如果我有templatestructMyPointer{Tp;???operator*(){return*p;}};我怎样才能弄清楚用什么替换???和?(没有提升!我想知道如何自己解决。) 最佳答案 templatestructdereference;templatestructdereference{typedeftypenameTtype;};templatestructMyPointer{