草庐IT

c++ - const char myVar* 与 const char myVar[]

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Differencebetweenusingcharacterpointersandcharacterarrays有什么区别:constchar*myVar="HelloWorld!";constcharmyVar[]="HelloWorld!";如果有的话?

c++ - 使用指向 char 的指针时访问冲突写入位置

我正在编写一个非常简单的程序,用于从字符串中删除重复的字符。我运行它visualstudio并得到错误:Unhandledexceptionat0x00d110d9ininteviews.exe:0xC0000005:Accessviolationwritinglocation0x00d27830.我真的不明白问题是什么。当前单元格获取下一个单元格的值。voidremove(char*str,chara){while(*str!='\0'){if(*(str+1)==a){remove(str+1,a);}*str=*(str+1);//HEREIGETTHEERROR++str;}}

c++ - 为什么sizeof()编译器返回的值是依赖的?

structA{charc;doubled;}a;mingw32-gcc.exe中的:sizeofa=16在gcc4.6.3(ubuntu)中:sizeofa=12为什么它们不同?我认为应该是16,gcc4.6.3是否做了一些优化? 最佳答案 如果需要,编译器可能会为目标体系结构执行数据结构对齐。这样做可能纯粹是为了提高应用程序的运行时性能,或者在某些情况下是处理器需要的(即,如果数据未对齐,则程序将无法运行)。例如,大多数(但不是全部)SSE2指令要求数据在16字节边界上对齐。简而言之,计算机内存中的所有内容都有一个地址。假设我们

c++ - 将 System::String 转换为 Const Char *

这个问题在这里已经有了答案:howtoconvertSystem::Stringtoconstchar*?(2个答案)关闭7年前。我正在使用VisualC++2008的GUI创建器制作用户界面。单击按钮时,将调用以下函数。内容应该创建一个文件,并以文本框“文本框”的内容命名该文件,末尾带有“.txt”。但是,这导致我出现转换错误。这是代码:私有(private):System::VoidButton_Click(System::Object^sender,System::EventArgs^e){ofstreammyfile(Textbox->Text+".txt");我的文件.clo

c++使用int和char *重载构造函数

我尝试使用int和char*重载构造函数。然后在调用0时有歧义。是否有任何解决方法/解决方案?CBigInt(unsignedint);CBigInt(constchar*);问题出在0线上:CBigInta;//somemorecodea*=0;感谢您的回答。 最佳答案 使构造函数之一显式。只有在传递的类型完全匹配时才会使用它。CBigInt(unsignedint);explicitCBigInt(constchar*); 关于c++使用int和char*重载构造函数,我们在Stac

c++ - 为什么 unsigned char 用于 RGB 像素数据?

我正在使用一些基本的计算机图形学来学习C++。像素数据通常表示为:unsignedchar*pixelsunsignedchar很好,因为它是0到255之间的值(256=2^8因为char是2个字节,1个字节是8位?)。这很好,因为在RGB中,颜色用0到255之间的数字表示。但是..我将其理解为单色图像,在正常图像中我有RGB,我会有3个未签名字符数组,一个用于红色,一个用于绿色,一个用于蓝色。像这样的东西:unsignedchar*pixels[3]但我从来没有发现类似的RGB像素数据 最佳答案 RGB图像通常以交错顺序存储(R1

c++ - GCC 链接器找不到标准库?

我一直在用XCode开发一个学校项目。最终产品必须以带有makefile的源代码形式提交,因此我编写了一个makefile并以这种方式开始编译,以确保我有一个工作拷贝。这是我的生成文件:all:main.oStackList.oworld.oFarm.ogccmain.oStackList.oworld.oFarm.o-g-oProject1main.o:gcc-g-cmain.cppStackList.o:gcc-g-cStacklist.cppworld.cpp:gcc-g-cworld.cppFarm.cpp:gcc-g-cFarm.cppclean:rm*.oProject1编

c++ - char *foo 与 char* foo

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。简单的问题是:你为什么要写char*foo;不是char*foo;让我解释一下:对我(来自Java)来说,声明类似于;在上面的例子中,我声明了一个名为foo的变量,类型为char*(因为它是一个指向char的指针)。但无论我在哪里阅读c/c++/c#-Code,它看起来都像是一个名为*foo的char类型的变量。编译器不关心空格,但我作为开发人员关心。t

c++ - 为什么偏爱数据结构对齐?

结构的每个成员的类型通常有一个默认的对齐方式,即每个结构成员都在预先确定的边界上对齐。出于这个原因,填充在以下wiki示例中执行:structMixedData{charData1;shortData2;intData3;charData4;};structMixedData/*Aftercompilationin32-bitx86machine*/{charData1;/*1byte*//*1byteforthefollowing'short'tobealignedona2byteboundaryassumingthattheaddresswherestructurebeginsis

c++ - STL map<char*,char*> 析构函数

我知道映射析构函数调用每个包含元素的析构函数。会发生什么map?我看不到这段代码在/usr/include/c++/4.4中的什么地方编辑:我应该说map喜欢http://www.sgi.com/tech/stl/Map.html 最佳答案 当map被摧毁,它包含的所有元素也被摧毁。如果元素是类类型,则调用每个元素的析构函数。但是,请牢记上面map中包含的内容。正如您所料,它不是字符串——它只是指向字符串的指针。琴弦本身并没有被破坏。只有指针是。delete永远不会在指针上调用。恰当的例子:mapstrings;char*key=n