Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;sizeof在处提供未经处理的异常错误_C++_Crash_Runtime Error_Sizeof - Fatal编程技术网

C++ c++;sizeof在处提供未经处理的异常错误

C++ c++;sizeof在处提供未经处理的异常错误,c++,crash,runtime-error,sizeof,C++,Crash,Runtime Error,Sizeof,这只是一个基本的打印句子数组字符串。我是新来C++的,只使用java和类似的语言以前从来没有C。尝试通过各种不同的排序算法和数据结构来学习它 但在我开始之前,仅仅测试我的字符串数组会给我一个错误。我不知道为什么它会给我一个错误。编译很好,实际上运行并打印所需的内容,但如果您正在调试它,则会因错误而崩溃。谁能向我解释一下这是为什么。从C++库中尝试 sid()/和长度(,但必须使用siZeFe() " //BubbleSort.cpp #包括“stdafx.h” #包括 #包括 使用名称空间std

这只是一个基本的打印句子数组字符串。我是新来C++的,只使用java和类似的语言以前从来没有C。尝试通过各种不同的排序算法和数据结构来学习它

但在我开始之前,仅仅测试我的字符串数组会给我一个错误。我不知道为什么它会给我一个错误。编译很好,实际上运行并打印所需的内容,但如果您正在调试它,则会因错误而崩溃。谁能向我解释一下这是为什么。从C++库中尝试<代码> sid()/<代码>和<代码>长度(<)/代码>,但必须使用siZeFe() "

//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)