问题标签 [dynamic-allocation]
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.
c - problem with allocation of a pointer to pointer of char
I wrote this code to copy the contents of file 'vetores' to a matrix of char but I think that there is a problem with the dynamic allocation. Somebody could help me?
Here is the contents of file 'vetores':
c - c中包含各种数组的结构的安全分配
我的代码中有这样的东西
通常,当我调用和 时fem_mesh_new
,我使用非常大的数字n_ver
,n_tri
这有时会导致分配错误(空间不足)。
即使我遇到这种错误,我的程序也应该建议用户并遵循执行。在这种情况下,我想释放自错误点以来我分配的所有东西(即,当我尝试分配时出现错误mesh->triangles
,但mesh->vertices
已分配,所以我想释放mesh->vertices
)
有没有更简单的方法来做到这一点?我能想到的唯一方法(这是我想避免的)是填充我的许多if (x==NULL)代码,但这很烦人,因为内存分配的顺序(在每个在我可能会出错的地方,我应该编写代码来释放从那时起分配的所有东西)。
不知道是否清楚,希望有人能提供一些帮助:)
c - malloc/calloc 调用上的奇怪 SIGABORT
用 gdb 运行我的程序我得到了这个:
fem.o: malloc.c:3096: sSYSMALLOc: 断言`(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof (size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' 失败。
程序收到信号 SIGABRT,已中止。__kernel_vsyscall() 中的 0xb7fe1424
我发现这个错误出现在这段代码之后:
问题是具有双 *y0 作为成员的结构。
以前在函数中,我这样做
而且我也没有收到任何错误== NULL。
一些建议?
添加:
我已经检查了 n_tot 的内容,它有正确的数字
c - 带有calloc的宏,安全吗?
如果我在我的代码中使用这个宏是否安全?
我正在使用 gcc 作为编译器...
在我的程序中有很多内存分配点,所以我使用它。我在 5 分钟前尝试过,我得到了一些奇怪的 sigabort 和 sigsev,现在我要回家了……如果我能找到一些东西,我会再试一次。
一些想法/提示?
编辑添加:
通常我使用宏如下:
c++ - C ++:为什么可以将静态创建的变量传递给期望引用的函数?
我已经用 C++ 编程了一段时间,但肯定不会称自己为专家。这个问题不是为了解决我遇到的实际问题,而是更多地了解 C++ 在做什么。
想象一下,我有一个需要单个参数的函数:
(注意:参数是对 SomeClass 的引用)然后我这样调用函数:
为什么这是合法的 C++?该函数期望引用 SomeClass,但我将其传递给 SomeClass 类型的静态分配变量。引用就像指针不是吗?如果我们用指针替换引用,编译器会抱怨。为什么引用以这种方式与指针不同,幕后发生了什么?
对不起,如果这是一个愚蠢的问题,这只是困扰我!
c++ - c++中动态分配的链表。发生异常后如何防止内存泄漏?
我喜欢在 C++ 中实现链表,在添加新节点时我会动态分配它,如果某些分配失败我希望我的程序停止执行。
在“新节点”失败后抛出异常,所以我必须在异常处理程序中显式调用析构函数。我该如何处理这种情况以防止内存泄漏?好的,这是我的代码
链表.h
链表.cpp
cocoa - 为什么 Objective-C 对象必须动态分配?
为什么 Objective-c 对象必须动态分配?为什么我必须使它成为一个指向对象的指针,不像在 C++ 中我可以在堆栈上创建它们?谢谢。
c++ - 创建类 C++ 时的内存分配问题
仍在学习 C++,并且仍然有特定的错误:)。我有以下组成的对象:
问题是,当我尝试使用以下构造函数对其进行初始化时,出现分段错误:
据我了解,所有变量均已正确分配,因为出现“Setarea documentului finisata”消息,然后出现段错误。所有代码都可以正常编译,没有任何警告。另外,我试图在谷歌上搜索一些东西,但找不到与我类似的情况。这种奇怪行为的原因可能是什么?
PS:拷贝构造函数的实现:
我是从老师的例子中得出的。另外,我通过以下方式初始化变量:
因为老师要求我们对象包含动态创建的字符串:)
c - 从函数返回一个字符串数组
我需要返回 achar**
但是当我尝试这样做时,编译器告诉我我想返回一个局部变量的地址。我怎样才能做到这一点?我知道我应该为这个变量分配空间但是如何?这是我的代码,但第二个printf
没有出现,函数什么也不返回:
c++ - 有什么方法可以防止类的动态分配?
我在嵌入式系统中使用了 C++ 基类和子类(为了清楚起见,我们称它们为 A 和 B)。
这是时间和空间的关键,所以我真的需要它是最小的。
编译器抱怨缺少虚拟析构函数,这是我理解的,因为如果你分配 aB*
然后删除指针作为A*
.
但我永远不会分配此类的任何实例。有没有一种方法可以重载operator new()
,以便在没有动态分配任一类的情况下进行编译,但如果最终用户尝试分配 A 或 B 的新实例,则会导致编译器错误?
我正在寻找一种与通过私有构造函数“毒化”自动编译器复制构造函数的常用技术类似的方法。(例如http://channel9.msdn.com/Forums/TechOff/252214-Private-copy-constructor-and-private-operator-C)