问题标签 [new-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 基本数组初始化和排序问题
这是一个相当基本的java问题
我有一个包含字符串的数组,我想使用 java.util.Arrays.sort 对其进行排序
当我写
它被正确排序
但是当我有
排序抛出一个空引用异常
我很确定它真的很愚蠢,我只是现在不明白。我必须新的字符串,因为硬编码默认值不会让任何人,任何地方。
c++ - C++ 的新操作是否可以保证地址返回的对齐?
大多数有经验的程序员都知道数据对齐对程序的性能很重要。我见过一些程序员编写的程序分配了比他们需要的更大的缓冲区,并使用对齐的指针作为开始。我想知道我是否应该在我的程序中这样做,我不知道 C++ 的新操作返回的地址是否对齐有任何保证。所以我写了一个小程序来测试
我使用的编译器是 Visual C++ Express 2008。似乎新操作返回的所有地址都是对齐的。但我不确定。所以我的问题是:有任何保证吗?如果他们有保证,我不必调整自己,如果没有,我必须。
c++ - 在任何情况下 new 都会返回 NULL 吗?
我知道根据 C++ 标准,如果 new 无法分配内存,它应该抛出 std::bad_alloc 异常。但我听说一些编译器,如 VC6(或 CRT 实现?)不遵守它。这是真的 ?我问这个是因为在每个新语句之后检查 NULL 会使代码看起来非常难看。
c++ - 重载新/删除
我在我的程序中做了一个小内存泄漏查找器,但是我重载 new 和 delete(以及 new[] 和 delete[])的方式似乎没有做任何事情。
我重载的方式new
如上面的代码片段所示。我想这是运营商返回 void* 的问题,但我不知道该怎么做。
c++ - 新的第二个参数,C++
在一个例子中,我看到了这条线
没有解释、函数体或类定义。第二个参数是什么意思?
c++ - 用 new 分配大块内存
我需要用 new 分配大块内存。
我坚持使用 new 因为我正在为两部分应用程序的生产者端编写一个模拟。实际的生产者代码正在分配这些大块,我的代码有责任删除它们(在处理它们之后)。
有没有办法可以确保我的应用程序能够从堆中分配如此大量的内存?我可以将堆设置为更大的大小吗?
我的情况是 64 个 288000 字节的块。有时我要分配 12 个,而其他时候我要分配 27 个。我得到一个 std::bad_alloc 异常。
这是:C++,Linux 上的 GCC(32 位)。
c++ - 类型名称后的括号是否与 new 不同?
如果'Test'是一个普通的类,有什么区别:
和
flash - 如何设置 flash 对象以在新窗口中打开 url?
我有这个代码:
编辑:汤姆的代码
我希望当用户单击 Flash 对象时,它会在新窗口中打开一个 URL。我该怎么做呢?
干杯,基思
c++ - 什么时候应该在 C++ 中使用 new 关键字?
我使用 C++ 有一段时间了,我一直想知道这个new
关键字。简单地说,我应该使用它,还是不使用它?
- 用
new
关键字...
- 没有
new
关键字...
从实现的角度来看,它们似乎没有什么不同(但我确信它们是不同的)......但是,我的主要语言是 C#,当然第一种方法是我习惯的。
困难似乎在于方法 1 更难与 std C++ 类一起使用。
我应该使用哪种方法?
更新1:
我最近对超出范围(即从函数返回)的大型数组使用了堆内存(或空闲存储new
)关键字。在我使用堆栈之前,这会导致一半元素在范围之外损坏,切换到堆使用可确保元素完好无损。耶!
更新 2:
我的一个朋友最近告诉我,使用new
关键字有一个简单的规则;每次键入时new
,键入delete
。
这有助于防止内存泄漏,因为您总是必须将删除放在某处(即,当您将其剪切并粘贴到析构函数或其他位置时)。
c++ - 为什么数组有特殊的new和delete?
使用delete
而不是有什么问题delete[]
?
在分配和释放数组的背后是否发生了一些特别的事情?
为什么它会不同于malloc
和免费?