objective-c - 如何创建一个c数组?

标签 objective-c c arrays pointers

如何在构造函数中设置指向 C 数组的指针?

@implementation NSBufferedInputStream {
    char *buffer;
    int bufferSize;
}

- (id)initWithFileAtPath:(NSString *)path
{
    self = [super initWithFileAtPath:path];
    if (self) {
        bufferSize = 100;
        buffer = char[bufferSize]; // ERROR: Expected expression
    }
}
@end

最佳答案

如果你真的需要一个动态大小的数组,

- (id)initWithFileAtPath:(NSString *)path
{
    self = [super initWithFileAtPath:path];
    if (self) {
        bufferSize = 100;
        buffer = malloc(sizeof(char) * bufferSize);
    }
}

- (void)dealloc
{
    free(buffer);
    [super dealloc];
}

否则,如果您的数组大小在编译时已知,只需将您的 ivar 从 char *buffer; 更改为:

char buffer[100]

关于objective-c - 如何创建一个c数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10475799/

相关文章:

PHP 数组比较 : why must the callback function for array_uintersect return -1, 0,还是 1?

javascript - 如果empty = true,则从双层嵌套数组中删除第一个和最后一个项目

在空指针异常的情况下,Java 与 Objective C

ios - 如何从 Camera ios 拍摄多张图像

ios - If 语句不适用于 TableView 单元格

iphone - UINavigationBar 标题飞出界

objective-c - 查找 Macintosh 文件的属性

javascript - 根据数组更改对象键

c - 如何在 C 中实现作用域枚举

c - 将 Double 转换为 Char 时的舍入错误