我正在使用 Xcode 4 制作一个命令行工具。
我在带有 strcpy 的行上收到 EXC_BAD_ACCESS 错误:
char *invalidOption = NULL;
strcpy(invalidOption, argv[2]);
argv[1] 是 -v(“有效”选项),argv[2] 是 -z(“无效”选项)。
出于显示原因(打印“错误”消息),我需要更改“invalidOption”。
关于为什么会发生这种情况的任何想法? 如果您需要更多详细信息,请告诉我。
最佳答案
strcpy
不会为您分配任何内存。您正在尝试将字符串复制到 NULL
,这会导致未定义的行为。你需要这样的东西:
char invalidOption[10];
strcpy(invalidOption, argv[2]);
只需确保 invalidOption
足够大以容纳整个字符串(包括空终止符),否则您将遇到同样的问题。如有必要,您可以使用动态分配。
关于objective-c - strcpy 导致 EXC_BAD_ACCESS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11711592/