C++ 分段错误和可用内存(尽管未使用指针)

C++ 分段错误和可用内存(尽管未使用指针),c++,segmentation-fault,C++,Segmentation Fault,我正在尝试打印最接近的素数ASCII,但没有输出。问题是什么?如何解决 代码: 375 AVFMALGLRPQADLYTSXVZKKUQBFODXFBLGDPBWOWMANFLYFBHVTZKALPGMTQVVHPWGFHJDXXWAHYRHWWKXTNPXCISAXVAKCxPvPvPvFnEOVCNSEGIVFqXpRxPvCvCvCvCvCvCvCvCvCvCvCvPvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvC

我正在尝试打印最接近的素数ASCII,但没有输出。问题是什么?如何解决

代码:

375 AVFMALGLRPQADLYTSXVZKKUQBFODXFBLGDPBWOWMANFLYFBHVTZKALPGMTQVVHPWGFHJDXXWAHYRHWWKXTNPXCISAXVAKCxPvPvPvFnEOVCNSEGIVFqXpRxPvCvCvCvCvCvCvCvCvCvCvCvPvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCvCVxcCjweKhbyXxhVKCbNTQBKgHD

Your Code's Output
“您的代码没有打印任何内容。”


cin>>S[j]正在访问
S
超出范围,因为
S
为空。您可能需要将其替换为,例如:

char ch;
cin >> ch;
S += ch;
或者只需一次读取整个字符串,而不首先输入长度:

cin >> S;

另外,对于
performAll
,我还收到一个编译器错误“Control may reach end of non void function”。也就是说,它缺少一个返回语句。

您正在践踏分配的内存
std::string
。当你到达

cin>>S[j];

S
是空的,因为它是默认构造的。如果索引对写入无效,并且空字符串没有有效的可写索引,则尝试使用
运算符[]
向其中添加数据是未定义的行为。

请清除缩进。我在您的代码中没有看到任何释放(或删除)的调用,因此很难看到错误在哪里。您可以使用调试器查找问题吗?
cin >> S;
cin>>S[j];