objective-c - strcpy 导致 EXC_BAD_ACCESS?

标签 objective-c xcode4 exc-bad-access program-entry-point strcpy

我正在使用 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/

相关文章:

objective-c - viewDidLoad 中的 EXC_BAD_ACCESS

c - 如何为这种数据类型创建一个可变的 C 数组?

iphone - UITableView 在使用自定义 UITableViewCell 时抛出 EXC_BAD_ACCESS

objective-c - 根据经度和纬度找出日出时间

iphone - Xcode 4.2 和 ios5 无法使用越狱设备进行调试

xcode4 - 如何更改 xcode 4 中的文件路径?

xcode4 - 使用 App Store 在 OS X 10.7.2 上安装 XCode 4.2.1

ios - xcode 中抛出的 EXC_BAD_ACCESS 错误

objective-c - 使用 Apple Metal 的透明窗口和 View

objective-c - 有没有一种方法可以在没有 @selector 语法的情况下指定选择器/@selector 在幕后发生了什么