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