【发布时间】:2014-12-27 11:47:12
【问题描述】:
我正在尝试将 argv 复制到 char 数组,在线解决了一些问题,但最终出现了 Segmentation Fault。以下是我使用的代码:
void main (int argc,const char *argv[])
{
char *arr;
arr = (char *) malloc(strlen(argv[1])+1);
strcpy(arr,argv[1]);
}
请帮助确定我做错了什么。
【问题讨论】:
-
你在运行程序时指定了哪个参数?您应该在分配、复制之前检查
argc > 1。 -
argv[1]是什么?strlen(NULL)会导致 UB 和 segfault。见this -
你至少给程序传递了一个参数?请告诉我们您如何调用该程序以及您传递给它的参数。
-
谢谢你..它现在工作正常..