草庐IT

hex_char

全部标签

c++ - const char* 的多重定义

我收到上述全局消息链接器错误constchar*HOST_NAME="127.0.0.1";我不认为我已经编译了一些文件两次,但无论如何这是我对文件的定义。main.cpp#include#include#include#include#include"connection.hpp"连接.cpp#include#include#include#include#include#include#include#include#include"connection.hpp"连接.hpp#ifndef__connection__#define__connection__#include#inc

c++ - 在运行时调整 char[] 的大小

我需要在运行时将chararray[size]的大小调整为chararray[new_size]。我该怎么做? 最佳答案 如果您使用的是std::vector而不是数组,那么您想要的功能将只是该类型的另一种方法。 关于c++-在运行时调整char[]的大小,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1354900/

c++ - 奇怪的 char* 编译错误?

我下面的代码有什么问题吗?我得到了编译错误!typedefunsignedcharBYTE;voidfoo(char*&p){return;}intmain(){BYTE*buffer;//errorC2664:'foo':cannotconvertparameter1from'char*'to'char*&'foo((char*)buffer);return0;}提前致谢,乔治 最佳答案 当您将BYTE*转换为char*时,会创建类型为char*的未命名临时实体。您调用的函数引用了char*,但您不能引用这样的临时实体,因为它不是

c++ - 为什么 char** 不能作为 C++ 中以下函数的返回类型?

我在C++中有以下函数:char**f(){char(*v)[10]=newchar[5][10];returnv;}VisualStudio2008说明如下:errorC2440:'return':cannotconvertfrom'char(*)[10]'to'char**'为了让这个函数起作用,返回类型到底应该是什么? 最佳答案 char**与char(*)[10]不是同一类型。这两种类型都是不兼容的类型,因此char(*)[10]不能隐式转换为char**。因此编译错误。函数的返回类型看起来很难看。你必须把它写成:char(

c++ - C++ 中的 const char*

C++中的字符串表达式是如何工作的?考虑:#includeusingnamespacestd;intmain(intargc,char*argv[]){constchar*tmp="hey";delete[]tmp;return0;}“嘿”表达式存储在哪里以及如何存储,为什么在我尝试删除它时出现段错误? 最佳答案 在这种(有些特殊的)情况下,它的存储位置留给编译器来决定。然而,这对您来说并不重要-如果您不使用new分配内存,则尝试使用delete释放它并不是一件好事。您不能删除以您分配的方式分配的内存。如果您想控制该资源的释放,您应

c++ - 从 char* 初始化 std::string 而不复制

我遇到这样一种情况,我需要处理大量(许多GB)数据:通过附加许多较小的(Cchar*)字符串构建一个大字符串修剪字符串将字符串转换为C++conststd::string进行处理(只读)重复每次迭代中的数据都是独立的。我的问题是,我想尽量减少(如果可能的话消除)堆分配的内存使用量,因为目前这是我最大的性能问题。有没有一种方法可以将C字符串(char*)转换为STLC++字符串(std::string)而无需std::string在内部分配/复制数据?或者,我可以使用stringstreams或类似的东西来重新使用大缓冲区吗?编辑:感谢您的回答,为了清楚起见,我认为修改后的问题是:如何有

c++ - 为什么 UuidFromString 函数请求非常量指针指向 unsigned char?

我不知道为什么UuidFromString函数需要非常量指向无符号字符的指针。为什么不用constchar*代替呢?我的想法是不需要修改第一个参数所指出的数据。 最佳答案 UuidFromString专为COM/DCOM而设计。unsignedchar是为了防止需要检查负数char值(默认char是signed,这意味着值的范围是[-128,127]-因为这个字符串应该是ANSI字符,这是避免条件检查的一种廉价方法)。它的姊妹函数(UuidToString)确实需要一个const输入参数。我在文档中看不到关于为什么UuidFromS

c++ - const char[] 默认函数参数

我定义了这样一个类型:typedefcharsType[256];和一个带有默认参数的函数:voidfoo(constsTypeparam=NULL);MinGW(g++4.8.0)编译它没有错误。相反,VisualStudio2015(Tools14.0)给出了以下错误:errorC2040:'sType':'int'differsinlevelsofindirectionfrom'char[256]'我试图将NULL转换为constchar[],但这会导致:errorC2440:'typecast':cannotconvertfrom'int'to'constchar[]'有什么提

c++ - 将 python 列表包装为 unsigned char*

编辑:大家好!!我目前正在尝试从Python访问C++函数,当我尝试将Python列表作为参数传递给函数时遇到了问题。这是我试图访问的C++函数定义(用于向PC/SC阅读器发送命令):SRpdu*SendAPDU(unsignedintuiAPDU,//CommandunsignedintucLE,//DataexpectedforresponseunsignedintucLC,//Sizeofdatabufferunsignedchar*pucDataBuf=0);//databuffer我的目标是像下面的示例一样从python调用此函数。目标是将列表[1,2,3]转换为unsign

c++ - 使用 char 参数从 <cctype> 调用函数是否安全?

C编程语言表示来自的函数遵循一个共同的要求:ISOC99,7.4p1:Inallcasestheargumentisanint,thevalueofwhichshallberepresentableasanunsignedcharorshallequalthevalueofthemacroEOF.Iftheargumenthasanyothervalue,thebehaviorisundefined.这意味着下面的代码是不安全的:intupper(constchar*s,size_tindex){returntoupper(s[index]);}如果此代码在char的实现上执行与sig