如何理解堆是否已满以及为什么 malloc 一直返回 NULL?
作为练习,目前我正在开发一个项目:一个使用 C 编程语言管理的基于个人文本的数据库(因此是作为一种“数据库”排列在文件中的(个人和非)数据的集…
在不同函数中调用 malloc 时发生内存泄漏
代码看起来像这样 void otherfunc(char* str) { str = malloc(128); // Initialize str to something } void mainfunc() { char* foo = NULL; otherfu…
我想在向量中的某个位置插入多个值
当我创建一个向量时,假设大小为 5 ,元素为 1,2,3,4,5 ,我想在位置(例如索引 2)添加数字 200 和 300 ,向量应该看起来像 1 , 2、200、300、3、4…
在 C 中取消引用 NULL 指针
我试图为 2 个长度为 1024 的浮点向量分配内存,并用一些数字填充它们。 但是,我收到警告: 取消引用 NULL 指针 'fpVec1', 取消引用 NULL 指针“fpV…
如何在C中释放结构体数组
我有一个像这样的结构数组 typedef struct { char *name[50]; int score; } score; 内存被分配给该数组,就像这样 score *scores = (score *) malloc(…
malloc 中是否需要将 sizeof 放在数组长度之后?
我的教授告诉我以下代码是不正确的: int *array = malloc(sizeof *array * length); 而应该是: int *array = malloc(length * sizeof(int)); 他说你…
尝试释放未分配的地址,重新分配时出错
问题: https://leetcode.com/problems/find-and-replace -in-string/ """ char * findReplaceString(char * s, int* 指数, int 指数大小, char ** 来…
这段代码中 malloc 分配的内存大小是多少?
int *zahl = malloc(sizeof(int)*4); 我很困惑,我知道 int 的大小是 4 字节,因此,4 * 4 = 16。 但是,当我使用 printf(sizeof(zahl); 它给了我8。 …
使用 strtok 不同的字符串长度
void redact_words(const char *text_filename, const char *redact_words_filename){ FILE *fp = fopen(text_filename,"r"); FILE *f2p = fopen(reda…
如何使用 vgdb 在 Valgrind Massif 中强制创建新快照?
我使用 Valgrind 和 massif 工具来监视发生内存分配的所有代码部分。在本例中,我使用此命令使用 Valgrind 运行我的程序: valgrind --tool=massif --…
从文件中读取未知数量的字符串(每个字符串的长度未知)后,如何创建 char* 数组?
我有一个包含未知数量字符串的文件,并且每个字符串的长度都未知。 我想让文件的每一行在字符串数组中都有自己的字符串。 我尝试在 char** 数组中使用…