我正在尝试用C ++创建一个帮助我操作char数组的类。我怎样才能以正确的方式做到这一点?
1 - 使用提供的大小
创建char数组2 - 在getArray()
中返回char数组class ByteArray {
public:
ByteArray(int size) {
array_.resize(size);
}
const char* getArray() { return array_; }
private:
char array_[];
};
答案 0 :(得分:2)
您可以使用std :: vector;
class ByteArray {
public:
ByteArray(int size) {
array_.reserve(size);
}
const char* getArray() { return array_.data(); }
private:
std::vector<char> array_;
};
答案 1 :(得分:1)
这样的事可能
class ByteArray {
public:
ByteArray(int size) {
delete[] array_;
array_ = new char[size];
}
const char* getArray() { return array_; }
private:
char *array_;
};
您不能使用没有大小的数组,而是可以动态分配它。
答案 2 :(得分:-1)
这是我找到的最佳版本。
class ByteArray {
public:
ByteArray(int size) {
array_ = (char*)malloc(size);
}
~ByteArray() {
free(array_);
array_ = NULL;
}
const char * getArray() { return array_; }
private:
char * array_;
};