gpt4 book ai didi

objective-c - 对字符串的 NULL 终止的错误访问

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:48 25 4
gpt4 key购买 nike

-(void)myStartMethod{
NSString *str = @"testing";
char *charStr = [str UTF8String];
charStr[4] = '\0'; // bad access on this line.
NSLog(@"%s",charStr);
}

我试图终止第四个字符上的字符串并将输出打印为“test”。我错过了什么?

既然 C 编程可以像与 Objective-c(foundation framework) 一起使用一样,那么为什么它会抛出错误的访问。这种类型的 char 数组修改在 C (GCC) 中完全有效。

我该如何避免它及其背后的原因。提前致谢。

最佳答案

The documentation states 提供了一个很好的提示:

UTF8String

Returns a null-terminated UTF8 representation of the receiver.

- (const char *)UTF8String

所以,很明显你修改这个是错误的。事实上,在将 const char * 转换为普通 char * 时,您应该已经收到警告。

此外,'\0' 字符的名称不是NULL,它用于指针。

关于objective-c - 对字符串的 NULL 终止的错误访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24487344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com