我正在尝试使用malloc()
为char指针动态分配内存,但不确定我在这里缺少什么。
void item(struct product *pr, const char *title, double price)
{
title = malloc((strlen(title)+1) * sizeof(const char));
}
我为/0
字符添加了+1,不确定是否需要,但没有它也无效。我假设我不需要为结构分配内存或加倍。
答案 0 :(得分:0)
我正在尝试使用malloc()来动态地将内存分配给char指针
实际上 ,您正在尝试将内存分配给指向char的const
指针。
definition 的const
关键字可以阻止变量超出其初始创建(声明/定义)。这是作为一个论点传递的事实:
void item(struct product *pr, const char *title, double price)
要求在调用函数中传递title
之前已经定义了const char *title={"Call of the Wild"};
typedef struct {
int something;
}PR;
PR pr;
.../in some function...
item(&pr, title, 3.2);//because title is passed as const, it cannot be changed
(作为它出现的字符串数组)。
如上所述,假设以下变量描述,您的函数将接受以下内容:
string