C++ 处理数组

标签 c++ memory-management

我在看另一个 SO 问题,评分最高的答案是这样说的:

Other answers have already mentioned RAII, and that's a good answer. However, the best advice is this: don't allocate dynamic objects in the first place! Don't write

Foo * x = new Foo();

when you could just write

Foo x;

instead.

这对我来说似乎是个不错的建议。基于堆栈的东西已经具有很好的自动生命周期管理。

我的问题是:如何将这个合理的建议应用到类似的事情上

char * buffer = new char[1024];
stream.read(buffer, 1024);
...do stuff...
delete[] buffer;

对不起,如果我是愚蠢的,但是你如何在不使用 new[] 的情况下创建数组?

最佳答案

char buffer[1024];
stream.read(buffer, 1024 /* or sizeof(buffer) */); 

关于C++ 处理数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124085/

相关文章:

c++ - 如何在 C++ 中将 double 转换为字符串(无科学记数法)?

iphone - 数据 NSManagedObject 上的 valueForKey 不释放内存

PHP 内存管理

c++ - 为什么 STL 的 std::sort 不适用于不可变类?

c++ - 从 C、C++ 在 Linux 中发出系统命令

c++ - OpenMP 线程与静态变量的关联

android - 大堆大小的原因定位和补救

python - 为什么list()和[]之间的getsizeof结果不同?

php - CodeIgniter MySQL 查询使用过多内存 - 如何使用 MySQL 的 SSCursor?

c++ - strsafe.h 中 ',' 标记之前的预期主表达式