我正在使用Xcode 4制作命令行工具。
我在strcpy:
的行上出现了EXC_BAD_ACCESS错误char *invalidOption = NULL;
strcpy(invalidOption, argv[2]);
argv [1]是-v(“有效”选项),argv [2]是-z(“无效”选项)。
然后我需要更改“invalidOption”以显示原因(打印“错误”消息)。
有关为何发生这种情况的任何想法? 如果您需要更多详细信息,请与我们联系。
答案 0 :(得分:4)
strcpy
不会为您分配任何内存。您正在尝试将字符串复制到NULL
,这会导致未定义的行为。你需要这样的东西:
char invalidOption[10];
strcpy(invalidOption, argv[2]);
只需确保invalidOption
足以容纳整个字符串(包括空终止符),否则您最终会遇到同样的问题。如有必要,您可以使用动态分配。