如何使用 vgdb 在 Valgrind Massif 中强制创建新快照?
我使用 Valgrind 和 massif 工具来监视发生内存分配的所有代码部分。在本例中,我使用此命令使用 Valgrind 运行我的程序: valgrind --tool=massif --…
从文件中读取未知数量的字符串(每个字符串的长度未知)后,如何创建 char* 数组?
我有一个包含未知数量字符串的文件,并且每个字符串的长度都未知。 我想让文件的每一行在字符串数组中都有自己的字符串。 我尝试在 char** 数组中使用…
何时/为何应在 C 中使用 malloc()
于是前几天开始学习C。我听说动态内存分配在 C 中很重要。我也知道 malloc()、realloc() 和 free() 是如何工作的,但我真的不知道为什么/何时应该使用…
当重用分配给类的变量时,为什么只有最后一个析构函数调用才会导致崩溃?
我有一个例子,我有一个类在构造函数中分配内存,并在析构函数中释放它——非常基本的东西。如果我为类的新实例重用类实例变量,就会出现问题。当最终…
指向不完整类类型“struct S_statement”的指针不允许,C 错误
我有一个 C 项目,其中一个规范文件为 parser.h,其中定义了 struct S_statement,并且在源文件 parser.c 中实现了相同的内容,而其他定义(如 S_expr…
仅当通过 C 程序运行较大的文本文件时,free() 无效
我一直在开发一个项目,该项目将整个文件作为单个字符串并以各种方式操作它们,但是当运行大于大约 500 个字符的文本文件时,总是陷入 valgrind 错误…
malloc 与 uint8_t 之间的区别
这里是C语言新手。我不确定通过 malloc 向文件分配内存和执行操作之间的区别。 typedef uint8_t BYTE; BYTE filename[//number of bytes] 例如,读取…
将 C 中的动态 char 指针数组的最后一个值设置为 NULL 以终止 while 循环?
我根据下面的代码有几个问题。 这是在这个动态 char 指针数组末尾设置 NULL 标记值的正确方法吗?如果不是我能做什么? 由于我将 malloced 内存设置为…
C 中的 malloc() 返回已填充的内存
char *string = (char *) malloc(sizeof(char) * sz); 在此之前的代码->void insert_word(word *root, char string1[], int linenumber) { int sz=str…
在 C 中将大型 CSV 文件转换为二维数组
由于其卓越的计算速度,我最近转向了 C。我目前正在尝试将一个非常大的 CSV 表 (500.000 x 27) 导入到数组中,但在尝试将导入单元格中的值分配给相应…
Malloc 总是返回 NULL 指针;视觉工作室 2022
这可能是一个重复的问题,但我检查了类似的其他问题,但从未真正找到我正在寻找的东西(或者我相信)。 考虑以下代码: #include #include int main()…
如何使用指向结构体的指针访问指向结构体中数组的双指针
头文件: #include #ifndef PARRAY_H #define PARRAY_H typedef struct patype *parray; parray newParray(int lower, int upper); // returns a parr…
是“malloc”吗?可能是我的程序的瓶颈?
我的程序每秒调用 malloc 10'000 次。我完全不知道 malloc 调用需要多长时间。 只要一个无竞争的互斥锁? (10-100 ns) 只要压缩1kb的数据? (1-10 …
Valgrind 错误:条件跳转或移动取决于未初始化的值
这是我在这里发表的第一篇文章,因此对任何违反规范的行为表示歉意...... 我正在完成哈佛大学 Cs50 的拼写问题。任务是将字典文件加载到哈希映射中,…