这只是一个基本的打印句子数组字符串。我是c ++的新手,只使用过JAVA和类似的语言。尝试通过遍历每种不同的排序算法和数据结构来学习它。
但是在我开始之前测试我的字符串数组会给我一个错误。我不知道为什么它会给我一个错误。实际编译运行良好并打印意图内容,但如果您正在调试它则会崩溃并出现错误。任何人都可以向我解释为什么会这样。从c ++库中尝试size()
和length()
但必须使用sizeof()
'
//BubbleSort.cpp
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
int main()
{
string something[14];
something[0] = "Kate";
something[1] = "likes";
something[2] = "lots";
something[3] = "of";
something[4] = "cake";
something[5] = "in";
something[6] = "her";
something[7] = "mouth";
something[8] = "and";
something[9] = "will";
something[10] = "pay";
something[11] = "a";
something[12] = "lot";
something[13] = "lol";
int some = sizeof(something);
some--;
for (int i = 0; i < some; i++)
{
cout << something[i] << " " ;
}
system("pause");
return 0;
}
答案 0 :(得分:8)
sizeof(something)
不会按预期返回14,但会返回sizeof(string)*14
,因此当您尝试打印时遇到缓冲区溢出。
你需要的是
some = sizeof(something)/sizeof(string)
或@Tiago提到你可以使用
some = sizeof(something)/sizeof(something[0])
同样@James建议您应该查看std:vector
。