为什么以下代码会产生分段错误?

学者

我试图通过我的程序执行UNIX命令,该命令将处理多达4个参数,为什么这会产生段错误或其他错误?

using namespace std;

int main() {

char buffer[255];
cin >> buffer;


char* firstPtr;
char* secondPtr;
char* thirdPtr;
char* fourthPtr;

firstPtr = strtok(buffer, " ");
secondPtr = strtok(NULL, " ");
thirdPtr = strtok(NULL, " ");
fourthPtr = strtok(NULL, " ");


execlp(firstPtr, secondPtr);


   return 0;
}
扎菲

崩溃是因为您的buffer溢出。

尝试使用std::cin.getline(buffer, sizeof(buffer))代替std::cin >> buffer
还要注意,它strtok可能会返回NULL,因此请确保您可以处理它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么下面的代码会产生分段错误

来自分类Dev

为什么该程序会产生分段错误?

来自分类Dev

为什么看似简单的C ++代码会产生分段错误?

来自分类Dev

为什么我在以下代码中出现分段错误?

来自分类Dev

为什么会产生分段错误(核心转储)错误?

来自分类Dev

为什么这个简单的链表程序会产生分段错误?

来自分类Dev

为什么以下代码会运行?

来自分类Dev

为什么以下代码显示错误?

来自分类Dev

为什么发生分段错误错误

来自分类Dev

遇到以下代码的分段错误

来自分类Dev

以下代码给出了分段错误

来自分类Dev

为什么以下代码会导致无限递归?

来自分类Dev

为什么以下代码会导致无限递归?

来自分类Dev

为什么使用信号处理程序杀死自己的脚本会产生分段错误?

来自分类Dev

我只是想知道为什么以下代码在执行时不会出现分段错误

来自分类Dev

sprintf 产生分段错误

来自分类Dev

为什么以下代码不会引发错误?

来自分类Dev

为什么此代码会产生错误?

来自分类Dev

为什么此代码会产生错误?

来自分类Dev

Gcompris 产生分段错误错误

来自分类Dev

为什么这段代码会返回分段错误错误?

来自分类Dev

为什么以下代码无法解析?

来自分类Dev

为什么以下代码无法编译?

来自分类Dev

为什么以下代码不终止?

来自分类Dev

为什么GHC会产生以下错误消息?

来自分类Dev

以下代码中的错误是什么?

来自分类Dev

以下代码有什么错误?

来自分类Dev

printf是否产生分段错误?

来自分类Dev

每条命令都会产生分段错误