动态地将内存分配给C中的常量字符指针?

时间:2015-05-05 16:54:49

标签: c pointers

我正在尝试使用malloc()为char指针动态分配内存,但不确定我在这里缺少什么。

void item(struct product *pr, const char *title, double price)
{   
  title = malloc((strlen(title)+1) * sizeof(const char));
}

我为/0字符添加了+1,不确定是否需要,但没有它也无效。我假设我不需要为结构分配内存或加倍。

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