calloc相关内容

使用FREE()时检测到堆损坏(&Q)

我对C语言还很陌生(这实际上是我第一次使用指针赋值),而且我找不出这个错误... 以下是我的代码: void str_rv(char c[]) { int i, len = str_ln(c); char *rev = (char*)calloc(len, sizeof(char)); check_mem(rev); for (i = 0; i ..
发布时间:2022-09-03 23:27:19 其他开发

带有 C 指针结构的 Calloc

我知道要使用的 calloc 请求内存,在所有位上写入 0,然后返回指向它的指针. 我的问题是:如果我将 calloc 与包含指针的结构一起使用,这些指针会具有 NULL 值还是必须将它们设置为指向 NULL? struct a{字符 * 名称;无效 * p;}* 一个; 所以基本上,在我将 calloc 与结构 a 一起使用后,name 和 p 会指向 NULL 吗? 谢谢! ..
发布时间:2022-01-06 22:51:36 其他开发

realloc() 的正确使用

来自 man realloc:realloc() 函数返回一个指向新分配内存的指针,该指针适合任何类型的变量对齐,可能 与 ptr 不同,如果请求失败,则为 NULL. 所以在这个代码片段中: ptr = (int *) malloc(sizeof(int));ptr1 = (int *) realloc(ptr, count * sizeof(int));if(ptr1 == NULL) ..
发布时间:2021-12-30 23:38:09 其他开发

sizeof 对具有结构的不完整类型的无效应用

我有一个结构体,我在其中放置了有关玩家的所有信息.这是我的结构: struct player{int 起始资本;int currentCapital;int 起始位置;int 当前位置;内部活动播放器;int canPlay;}; 这就是我的主要内容: #include #include #include "header.h"int main(int argc, char *argv[]){ ..
发布时间:2021-12-23 17:12:23 其他开发

初始化 C++ 结构的正确方法

我们的代码涉及一个 POD(Plain Old Datastructure)结构(它是一个基本的 c++ 结构,其中包含其他结构和 POD 变量,需要在开始时进行初始化.) 基于我阅读的内容,似乎: myStruct = (MyStruct*)calloc(1, sizeof(MyStruct)); 应该将所有值初始化为零,就像这样: myStruct = new MyStruct() ..
发布时间:2021-12-23 17:09:56 C/C++开发

malloc 和 calloc 的区别?

做和做有什么区别: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); 或: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); 什么时候使用 calloc 而不是 malloc 是一个好主意,反之亦然? 解决方案 calloc() 给你一个零初始化的缓冲区,而 malloc() 使 ..
发布时间:2021-12-01 23:57:22 其他开发

如果我在用 calloc 分配的内存之外设置一个值会发生什么?

考虑以下事项: int* x = calloc(3,sizeof(int));x[3] = 100; 位于函数内部. 当我编译和运行程序时没有出现错误,但是当我使用 valgrind 运行它时,我得到一个“大小为 4 的无效写入". 我知道我访问的内存位置超出了我用 calloc 分配的内存位置,但我试图了解实际发生的情况. 堆栈中的某些地址(?)是否仍然具有值 100?因为 ..
发布时间:2021-09-15 20:46:16 其他开发

无法分配指针 linux 接收的内存

我有一个函数,它通过一个指针接收将要存储的位置.这个地方可以有不同的其他类似的结构.函数必须读取一个文件.这个文件存储了一个结构,我需要读取它. typedef struct user_manage_t{短 int user_id;字符权限;long int other_id;长整数检查;}user_manage_t;typedef struct holder_t{user_manage_t * ..
发布时间:2021-06-18 20:03:12 其他开发

写入二维数组时出现分段错误

我的程序中有一个小的内存访问问题,我没有找到错误,也许有人可以帮助我. 我创建了一个新类型来存储 rgb 颜色值.这种类型看起来像: typedef struct pixel {无符号字符 r;无符号字符 g;无符号字符 b;} 像素; 在我的主程序中,我使用 calloc 创建了一个 2D 动态数组,用于存储红色信息. pixel **pixelvalue = (pixel **) ..
发布时间:2021-06-02 19:36:47 其他开发

没有malloc或calloc的free()函数

快速问题 是否可以使用free()函数而不必事先调用malloc? ei. void someFunc(void){char str [6] = {"Hello"};//这里有一些处理...free(str);} 我没有编译错误,但是这行之有效还是完全正确? 谢谢 解决方案 这根本不正确: 您不能释放诸如 char str [6] 之类的静态数组. fre ..
发布时间:2021-05-31 19:48:52 其他开发

使电话机会化

在linux上, malloc 的行为是机会性的,只有在首次访问虚拟内存时才通过实际内存来支持它. 是否可以修改 calloc 使其也具有这种行为(在首次访问页面时对其进行分配和清零)? 解决方案 它不是 malloc()的功能,使其具有“机会性".这是内核的一个功能, malloc()与它无关. malloc()每当需要更多内存来满足请求时就向内核请求一小部分内存,而内核则说“是 ..
发布时间:2021-05-11 18:57:22 服务器开发

如何在C中使用calloc()?

如果程序中的字符串超过9个字符,我应该不会出错? //CString.c//2.22.11#include#include#include主要的(){char * aString = calloc(10,sizeof(char));如果(aString == NULL){返回1;}printf(“请输入一个单词:");scanf(“ ..
发布时间:2021-05-09 20:55:49 其他开发

malloc和calloc与std :: string之间的区别

我最近开始使用C ++,在使用malloc时遇到了问题.下面的代码不会打印出“成功"(程序崩溃,退出代码0xC0000005),但是如果我使用calloc,则一切正常. int main(){std :: string *指针=(std :: string *)malloc(4 * sizeof(std :: string));for(int i = 0; i ..
发布时间:2021-04-19 20:28:05 C/C++开发

使用calloc()设置char数组,还可以“释放"代码.完成后的数组

我正在尝试建立一个字符串数组(使用Linux在C语言中).该数组将容纳11个字符串(静态长度).我最初将数组设置为: char答案[10] [100]; 但是在我的代码中,我有一部分调用了fgets(input,sizeof(input),stdin).当调用此fgets()部分时,我的Answers数组的最后一个元素被input的值覆盖(关于Answers在堆栈中的位置吗?).因此,现在 ..
发布时间:2021-04-09 20:51:37 其他开发

2D阵列动态内存分配崩溃

可能重复: $ b如何正确设置,访问并释放C中的多维数组? 我正在尝试使用calloc为2D数组动态分配内存。列固定为2,因此只有动态的行。 这是我一直在尝试的内容: unsigned int ** pts,行; int main() { //一些代码 pts =(unsigned int **)calloc(2 * rows,sizeof(unsigned ..
发布时间:2020-10-27 02:14:01 其他开发

calloc()和NULL

我知道calloc会分配内存并将零写入每个单元格,所以我的问题是: 使用calloc或malloc与运行向其写入NULL的单元格之间有区别吗? calloc的零是否等于NULL? 解决方案 不,它们并不总是等效,而是在大多数流行的机器上,您都会没事的。 calloc 将全零的位模式写入分配的内存,但是在某些机器上(甚至对于某些类型,空指针值可能并非全零)在某些计算机上)。 查看空指 ..
发布时间:2020-10-27 02:13:57 其他开发