C++ c++;sizeof在处提供未经处理的异常错误
这只是一个基本的打印句子数组字符串。我是新来C++的,只使用java和类似的语言以前从来没有C。尝试通过各种不同的排序算法和数据结构来学习它 但在我开始之前,仅仅测试我的字符串数组会给我一个错误。我不知道为什么它会给我一个错误。编译很好,实际上运行并打印所需的内容,但如果您正在调试它,则会因错误而崩溃。谁能向我解释一下这是为什么。从C++库中尝试<代码> sid()/<代码>和<代码>长度(<)/代码>,但必须使用siZeFe() "C++ c++;sizeof在处提供未经处理的异常错误,c++,crash,runtime-error,sizeof,C++,Crash,Runtime Error,Sizeof,这只是一个基本的打印句子数组字符串。我是新来C++的,只使用java和类似的语言以前从来没有C。尝试通过各种不同的排序算法和数据结构来学习它 但在我开始之前,仅仅测试我的字符串数组会给我一个错误。我不知道为什么它会给我一个错误。编译很好,实际上运行并打印所需的内容,但如果您正在调试它,则会因错误而崩溃。谁能向我解释一下这是为什么。从C++库中尝试 sid()/和长度(,但必须使用siZeFe() " //BubbleSort.cpp #包括“stdafx.h” #包括 #包括 使用名称空间std
//BubbleSort.cpp
#包括“stdafx.h”
#包括
#包括
使用名称空间std;
int main()
{
把某物串起来;
某物[0]=“凯特”;
某物[1]=“喜欢”;
某物[2]=“很多”;
某物[3]=“of”;
某物[4]=“蛋糕”;
某物[5]=“in”;
某物[6]=“她”;
某物[7]=“嘴”;
某物[8]=“和”;
某物[9]=“将”;
某物[10]=“支付”;
某物[11]=“a”;
某物[12]=“很多”;
某物[13]=“lol”;
int some=sizeof(某物);
一些--;
for(int i=0;isizeof(something)
不会像您期望的那样返回14,但它返回sizeof(string)*14
,因此您在尝试打印时遇到缓冲区溢出。
你需要的是
some = sizeof(something)/sizeof(string)
或者如@Tiago所述,您可以使用
some=sizeof(某物)/sizeof(某物[0])
也如杰姆斯建议的,你应该查看<代码> STD:Vector 。
你应该考虑使用<代码> STD::向量或<代码> STD::DeQue/代码>:你可以这样做:Sigeof(某物)/ siZeof(*某物)@TiagoPeczenyj如果那某物
是一个数组,只是为了完整性…sizeof x
返回变量x
占用的字节数,std::string
对象肯定会占用比1个字节多得多的字节-这就是循环迭代次数过多且cout的原因
some = sizeof(something)/sizeof(string)