12得票3回答
全局使用Malloc函数(动态内存分配)时出现错误

#include<stdio.h> #include<string.h> char *y; y=(char *)malloc(40); // gives an error here int main() { strcpy(y,"hello world"); } ...

12得票6回答
malloc和free是如何实现的?

我想实现自己的动态内存管理系统,以添加新功能来帮助在C++中管理内存。 我使用Windows(XP)和Linux(Ubuntu)。 要实现类似'malloc'和'free'的函数,需要什么? 我认为我必须使用最低级别的系统调用。 对于Windows,我找到了以下函数:GetProcessH...

11得票2回答
C++中的动态零长度数组

#include <stdlib.h> void *operator new[](size_t size, int n){ if( size != 0 && n != 0 ) return calloc(n, size); retu...

11得票2回答
C编程 - realloc应该使用多频繁?

我有一个关于动态内存分配的问题。 背景信息:我正在编写一个程序,读取一个单词的文本文件并计算每个单词出现的频率(每行一个单词)。 这个特定的函数会读取文件,计算行数和字符数,然后动态分配内存给字符串指针数组、存储每行字符数的数组以及字符串本身。(其他部分与我的问题没有直接相关性。) 问题...

11得票7回答
动态内存分配问题

当你使用指针在堆上分配动态内存时,char *buffer_heap = new char[15]; 它将在内存中表示为: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍýýýý««««««««þþþ 为什么末尾没有空字符,而是以ýýýý««««««««þþþ作为结尾?

11得票6回答
nothrow还是exception?

我是一名学生,对C++有一些了解,正在努力扩展我的知识。这更多地是一个哲学问题... 我不是在尝试实现什么。 由于 #include <new> //... T * t = new (std::nothrow) T(); if(t) { //... } //... ...

11得票4回答
没有虚析构函数可能会导致内存泄漏吗?

#include <iostream> using namespace std; class base { int a; public: base() {a =0;} }; class derv :public base { int b; publi...

11得票2回答
C++语句'delete [] Q;'的大O表示法是O(1)还是O(n)?

标题已经很明确了。这是一个非常简单的问题。我认为它是O(n),但想在明天的最终考试前再次确认一下。

11得票3回答
在C++中,一个线程使用new分配的内存可以被另一个线程删除吗?

在glibc中,malloc是使用arenas实现的。例如,由线程A首先分配并稍后由free释放的内存可能无法被线程B中的另一个malloc调用使用,因为线程A和B可能在不同的arenas中,并且不同的arenas维护内存的不同堆和空闲列表。 当涉及到C++(也许还包括C++11,因为C++...

11得票2回答
在MS Visual Studio 2013中,我可以使用什么替代std::aligned_alloc?

我希望使用C++11的std::aligned_alloc,但不幸的是在Microsoft Visual Studio 2013中不可用。 因此,我考虑自己实现aligned_alloc。一个实现应该长什么样呢?例如下面的代码无法编译,因为它不能将void*转换为void*&。 ...