gpt4 book ai didi

c - malloc返回0?

转载 作者:行者123 更新时间:2023-11-30 18:39:31 25 4
gpt4 key购买 nike

我正在使用 Dev-C++ 编译器用 C 语言做一个家庭作业项目。奇怪的是,我一直停留在一个 malloc 函数上,该函数返回 0 ,这意味着它超出了堆内存。我几乎不怀疑内存已满。 我已经包含了 windows.h 库。

这是该函数有问题的部分。 printf 给了我:

00000000 ... 00000000 .... 005C1058

这里出了什么问题?

typedef struct tcat {
char *namec;
struct tcat *nextc;
struct tprod *firstp;
}CTGR;

typedef struct tprod {
char *namep;
float price;
int qt;
struct tprod *nextp;
}PRDCT;

void Srch(int i)
{
//data base population
int k,r;

//categories of components
CTGR *p,*primc;
primc = (CTGR *)malloc(sizeof(CTGR));

primc -> namec = "Resistances";
p = primc -> nextc;
p -> namec = "Capacitors";
p -> nextc = 0;


PRDCT *q,*primRP,*primCP;
primRP = (PRDCT *)malloc(sizeof(PRDCT));
primCP = (PRDCT *)malloc(sizeof(PRDCT));

printf(" %p ... %p .... %p",primRP,primCP,primc);
getch();

最佳答案

p = primc -> nextc;

可能是罪魁祸首。该值尚未设置,可以是任何值,因此当您通过它进行分配时,您正在写入内存中某个不可预测的位置。

关于c - malloc返回0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com