问题标签 [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.

0 投票
9 回答
2223 浏览

java - 基本数组初始化和排序问题

这是一个相当基本的java问题

我有一个包含字符串的数组,我想使用 java.util.Arrays.sort 对其进行排序

当我写

它被正确排序

但是当我有

排序抛出一个空引用异常

我很确定它真的很愚蠢,我只是现在不明白。我必须新的字符串,因为硬编码默认值不会让任何人,任何地方。

0 投票
6 回答
19662 浏览

c++ - C++ 的新操作是否可以保证地址返回的对齐?

大多数有经验的程序员都知道数据对齐对程序的性能很重要。我见过一些程序员编写的程序分配了比他们需要的更大的缓冲区,并使用对齐的指针作为开始。我想知道我是否应该在我的程序中这样做,我不知道 C++ 的新操作返回的地址是否对齐有任何保证。所以我写了一个小程序来测试

我使用的编译器是 Visual C++ Express 2008。似乎新操作返回的所有地址都是对齐的。但我不确定。所以我的问题是:有任何保证吗?如果他们有保证,我不必调整自己,如果没有,我必须。

0 投票
3 回答
37151 浏览

c++ - 在任何情况下 new 都会返回 NULL 吗?

我知道根据 C++ 标准,如果 new 无法分配内存,它应该抛出 std::bad_alloc 异常。但我听说一些编译器,如 VC6(或 CRT 实现?)不遵守它。这是真的 ?我问这个是因为在每个新语句之后检查 NULL 会使代码看起来非常难看。

0 投票
5 回答
81166 浏览

c++ - 重载新/删除

我在我的程序中做了一个小内存泄漏查找器,但是我重载 new 和 delete(以及 new[] 和 delete[])的方式似乎没有做任何事情。

我重载的方式new如上面的代码片段所示。我想这是运营商返回 void* 的问题,但我不知道该怎么做。

0 投票
1 回答
286 浏览

c++ - 新的第二个参数,C++

在一个例子中,我看到了这条线

没有解释、函数体或类定义。第二个参数是什么意思?

0 投票
5 回答
6434 浏览

c++ - 用 new 分配大块内存

我需要用 new 分配大块内存。

我坚持使用 new 因为我正在为两部分应用程序的生产者端编写一个模拟。实际的生产者代码正在分配这些大块,我的代码有责任删除它们(在处理它们之后)。

有没有办法可以确保我的应用程序能够从堆中分配如此大量的内存?我可以将堆设置为更大的大小吗?

我的情况是 64 个 288000 字节的块。有时我要分配 12 个,而其他时候我要分配 27 个。我得到一个 std::bad_alloc 异常。

这是:C++,Linux 上的 GCC(32 位)。

0 投票
7 回答
126023 浏览

c++ - 类型名称后的括号是否与 new 不同?

如果'Test'是一个普通的类,有什么区别:

0 投票
3 回答
14828 浏览

flash - 如何设置 flash 对象以在新窗口中打开 url?

我有这个代码:

编辑:汤姆的代码

我希望当用户单击 Flash 对象时,它会在新窗口中打开一个 URL。我该怎么做呢?

干杯,基思

0 投票
11 回答
151133 浏览

c++ - 什么时候应该在 C++ 中使用 new 关键字?

我使用 C++ 有一段时间了,我一直想知道这个new关键字。简单地说,我应该使用它,还是不使用它?

  1. new关键字...
  1. 没有new关键字...

从实现的角度来看,它们似乎没有什么不同(但我确信它们是不同的)......但是,我的主要语言是 C#,当然第一种方法是我习惯的。

困难似乎在于方法 1 更难与 std C++ 类一起使用。

我应该使用哪种方法?

更新1:

我最近对超出范围(即从函数返回)的大型数组使用了内存(或空闲存储new)关键字。在我使用堆栈之前,这会导致一半元素在范围之外损坏,切换到堆使用可确保元素完好无损。耶!

更新 2:

我的一个朋友最近告诉我,使用new关键字有一个简单的规则;每次键入时new,键入delete

这有助于防止内存泄漏,因为您总是必须将删除放在某处(即,当您将其剪切并粘贴到析构函数或其他位置时)。

0 投票
7 回答
2380 浏览

c++ - 为什么数组有特殊的new和delete?

使用delete而不是有什么问题delete[]

在分配和释放数组的背后是否发生了一些特别的事情?

为什么它会不同于malloc和免费?