草庐IT

Pointers

全部标签

c++ - 如何为 MyClass** 传递 MyClass[][]?

为什么我不能通过Pointsrc[1][4]={{Point(border,border),Point(border,h-border),Point(w-border,h-border),Point(w-border,h-border)}};作为polylines(frame,src,ns,1,true,CV_RGB(255,255,255),2);在哪里折线有原型(prototype)voidpolylines(Mat&img,constPoint**pts,constint*npts,intncontours,boolisClosed,constScalar&color,intth

c++ - 无法写入文件中的数据,程序C++没有错误

我无法在类中使用这些指针变量向文件写入数据。程序没有错误,但文件中没有写入数据。请有人告诉我我做错了什么。#include#includeclassstudentinfo{private:/*CreatingPrivateDataMembers*/char*VUID;char*campusID;char*Studentname;char*Fathername;public:voidStorefile();/*FunctiontoStoreDataintheFile*/charDisplay();/*FunctiontoReadandthenDisplayDatafromtheFile*

c++ - 从 void* 到 void(*)(void*)[-fpermissive] 的无效转换

这个问题是关于线程的,但我有一个更简单的案例。(初学者)我在不同的C++编译器中尝试了代码,但无法正常工作。请告知如何替换该行:callback=(void*)myfunc;//-->errortypedefstruct_MyMsg{intappId;charmsgbody[32];}MyMsg;voidmyfunc(MyMsg*msg){if(strlen(msg->msgbody)>0)printf("AppId=%d\nMsg=%s\n",msg->appId,msg->msgbody);elseprintf("AppId=%d\nMsg=NoMsg\n",msg->appId)

c++ - T* 和常量 T*

我相信这可能适用于许多T,但我确信这适用于整数。作为学习C++的一部分,我试图用标准中的语言来解释以下行为。typedefconstint*constintptr;typedefint*intptr;intptrp;constintptrcp=p;constconstintptr&crcp=p;//constintptr&rcp=p;查看n3337,第8.5.3节。似乎可以通过说int*可转换为constint*prvalue,但引用不兼容来解释此行为。(如果我错了,请纠正我)。我看到这是可取的行为(或者我们可以颠覆const),并且这种行为的可取性不是这个问题的目的。问题是在标准中指

c++ - 关于指针的一些问题

我在读高中三年级,目前正在学习C++。由于我们已经完成了我们需要了解的关于一般编程的所有内容(循环、if语句、函数、结构、数组和二维数组),我们开始了二进制/文本文件,我认为在我们学习文件的同时学习内存管理。首先,我现在正在尝试学习指针,因为如果我理解正确的话,在OOP中它们是必须的。其次,我想知道计算机是如何工作的,正在发生的事情背后是什么。现在,我制作了这一小段代码intmain(){chary;char*x;x=&y;cout>x;cout它可以工作,但是当程序关闭时,我收到一条错误消息,指出变量“y”周围的堆栈已损坏。如果我没有混淆,堆栈是动态内存,堆是静态内存,想想我得到这个

c++ - int8_t 和 char : converts between pointers to integer types with different sign - but it doesn't

我正在处理一些嵌入式代码,并且正在从头开始编写一些新东西,因此我更愿意坚持使用uint8_t、int8_t等类型。然而,当移植一个函数时:voidfunctionName(char*data)到:voidfunctionName(int8_t*data)在将文字字符串传递给函数时,我收到编译器警告“在指向具有不同符号的整数类型的指针之间转换”。(即调用functionName("putthistextin");时)。现在,我明白了为什么会发生这种情况,并且这些行只是调试,但我想知道人们认为什么是最合适的处理方式,而不是对每个文字字符串进行类型转换。在实践中,我不认为一揽子类型转换比使用

c++ - 我正在尝试将 C++ 引用与指针相关联

在说这将是一个重复的问题和否决票(就像以前发生的那样)之前,我进行了搜索,但没有发现任何相似的东西。我和许多其他人一样,正在尝试学习C++引用变量的使用并将它们与指针相关联。我发现制作表格更容易,我需要知道它是否需要修改。int*nintnint&ncaller/localvoidfoo(int*n)n&n&ncallervoidfoo(intn)*nnnlocalvoidfoo(int&n)*nnncaller表格要反射(reflect)所有合法传递的参数。[1,1]:passingbyreference(trivial)[1,2]:passingbyreference[1,3(1)

c++ - int to void* - 避免 c 风格的转换?

我需要将int(指定字节偏移量)转换为constvoid*。唯一真正适合我的解决方案是C风格的转换:intoffset=6*sizeof(GLfloat);glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,0,(void*)offset);我想摆脱c风格的强制转换,但找不到可行的解决方案。我试过了static_cast(&offset)它可以编译,但这不是正确的解决方案(这种方法的整个输出不同)。什么是正确的解决方案?glVertexAttribPointer文档链接:Link 最佳答案 考虑到

c++ - 在 C++ 中使用指针的变量值及其地址

我在理解指针时遇到一些问题。在下面的代码中,我尝试以两种方式打印变量的地址——一次使用地址运算符,然后使用指针:#includeusingnamespacestd;intmain(void){intx=10;int*int_pointer;int_pointer=&x;coutxaddress=0028FCC4xaddresswpointer=0028FCC4这按预期工作。但是当我做同样的事情但现在使用字符类型变量时,我得到一些垃圾输出:#includeusingnamespacestd;intmain(void){charc='Q';char*char_pointer;char_po

c++ - C++ 中的二维对象指针数组

如何分配指向对象的二维指针数组?目前我有:文件.hexternClassName**c;文件.cppClassName**c;intmain(){//somestuffc=newClassName*[sizex];for(inti=0;i编译失败,错误说明没有匹配operator=usingClassName和ClassName*,查看错误是有道理的。但是,如果我将c[i][j]的赋值更改为ClassNamecn();c[i][j]=cn;它给出了过多的其他错误。直到运行时(从标准输入读取)才能知道数组的大小,并且它也必须是外部的。在这种情况下声明数组的正确方法是什么?