草庐IT

CHAR_LENGTH

全部标签

c# - 如何将带有 const char* 的 C union 映射到 C# 结构?

在本地库的回调函数中,我需要访问一个espeak_EVENT数组。问题出在原C代码中的UNION语句:typedefstruct{espeak_EVENT_TYPEtype;unsignedintunique_identifier;//messageidentifier(or0forkeyorcharacter)inttext_position;//thenumberofcharactersfromthestartofthetextintlength;//wordlength,incharacters(forespeakEVENT_WORD)intaudio_position;//th

c++ - 在抛出 'std::length_error' 实例后调用终止

这是我在这里的第一篇文章。由于我是新手,这个问题可能很愚蠢。当显示以下错误消息时,我正在编写一段代码,在抛出“std::length_error”的实例后调用终止什么():basic_string::_S_create/home/gcj/finals/home/gcj/quals中止的地方以下是有问题的代码,尤其是第39行到第52行。这对我来说很奇怪,因为这段代码几乎与第64行到第79行相同。intmain(){std::vectordirs,need;std::stringtmp_str;std::ifstreamfp_in("small.in");std::ofstreamfp_o

c++ - 当 vector<char>&& 绑定(bind)到 vector<char>& 时编译器不会报错

我使用的是VisualStudio2013Express。classB{public:vector&a;int&b;B(vector&i,int&c):a(i),b(c){}};intmain(){intl=3;vectorh;shared_ptrbb(newB(std::move(h),l));return0;}为什么代码可以被接受?当我将参数l更改为std::move(l)时,编译器会报错“无法将参数2从'int'转换为'int&'”。 最佳答案 这是VisualC++编译器中可用的语言扩展,现在已经存在了很长一段时间。该扩展允

c++ - 使用对 const char * 的右值引用的重载解析

#includeusingnamespacestd;voidf(constchar*const&s){cout输出:rvaluervalue为什么输出不是“右值左值”? 最佳答案 字符串文字和s都不是指针(它们是数组),因此标准的相关部分是[conv.array]:Anlvalueorrvalueoftype"arrayofNT"or"arrayofunknownboundofT"canbeconvertedtoaprvalueoftype"pointertoT".Theresultisapointertothefirsteleme

c++ - 列表初始化的 char 数组是否仍然以 null 结尾?

当我阅读LippmanC++Primer(第5版,C++11)时,我遇到了这段代码:charca[]={'C','+','+'};//notnullterminatedcout在ca上调用库strlen函数,它不是以null终止的,会导致未定义的行为。Lippman等人说,“这个调用最可能的效果是strlen将继续查找跟在ca之后的内存,直到它遇到一个空字符。”稍后的练习将询问以下代码的作用:constcharca[]={'h','e','l','l','o'};constchar*cp=ca;while(*cp){cout我的分析:ca是一个非空终止的字符数组。cp是一个指向char

c++ - 带有 const char* 变量的 printf 问题

我陷入了printf问题。如果我能在这里得到一些帮助,我将不胜感激:在下面的代码中,我可以看到字体系列在第一个printf()中被正确置换,但是如果我将它设置为变量,我只会得到一个空字符串。我怎样才能把它放在一个变量中并获得正确的值?我只是不想到处输入“font.family().family().string().utf8().data()”?我用同样的方法做了这个:voidmyMethod(){constchar*fontFamily=font.family().family().string().utf8().data();//getdisplayedcorrectlyprint

C++ 将一个 int 分配给一个 char - 为什么这个工作至少没有警告?

为什么C++(可能还有C)允许我在不给我警告的情况下将和int赋值给char?可以直接赋值吗,比如inti=12;charc=i;即做一个隐式转换,或者我应该使用static_cast?编辑顺便说一句,我正在使用gcc. 最佳答案 在发明显式强制转换语法之前,C中允许使用它。然后它仍然是一种常见的做法,所以C++继承了它,以免破坏大量代码。实际上大多数编译器都会发出警告。如果没有,请尝试更改其设置。 关于C++将一个int分配给一个char-为什么这个工作至少没有警告?,我们在Stack

c++ - 这是(枚举 : char {}) a gcc bug?

在gcc-4.5下打印0,在gcc-4.6下打印1。#includeenumVenueId:char{};intmain(intargc,char**argv){VenueIdv=(VenueId)'P';std::cout 最佳答案 根据标准,VenuedId具有char类型作为基础类型,因此v应包含char'P',v=='P'应该产生true。§7.2枚举声明Eachenumerationdefinesatypethatisdifferentfromallothertypes.Eachenumerationalsohasanun

c++ - 我不能再将 char[M][N] 类型分配给 gcc 4.9 上的 std::vector

在升级Ubuntu之前我一直使用gcc4.8,现在我有gcc-4.9.1-16。过去可以在没有警告的情况下编译并运行良好的代码现在不再可以编译。staticconstunsignedWIDTH=16;staticconstunsignedVSCALE=1;staticconstunsignedHEIGHT=WIDTH/VSCALE;staticconstunsignedFOOTER=2;typedefcharRow[WIDTH+1];typedefRowWorld[HEIGHT-FOOTER];std::vectorm_levels;Worldlevels[]={{"","","","

c# - 如何将struct中的char *从c#传递到c++

感觉我的问题和this类似.到目前为止,我有一个用C++定义的结构,如下所示:typedefstructstruct_type1{uint64nameLen;char*name;}STATUSSTRUCT;和一个函数定义为:externint_stdcallgetStatus(STATUSSTRUCT*status);大概是这样的功能:int_stdcallgetStatus(STATUSSTRUCT*status){status->nameLen=someLength;status->name=someName;return1;}请注意,我实际上无法更改C++代码(出于各种原因)或头