c - 如何在 c 结构中使用指向字符的指针?

标签 c struct char malloc

可以使用 char name[size] 声明所需大小的字符串,但是如果我想使用 char *name,我将如何指定我需要使用 malloc() 的大小?

我发现我不能在结构声明中使用 char *name = malloc(5*1);

我试过用

struct data
{
    int age;
    char *name;
};

在运行这段代码并输入字符串时,我遇到了段错误。 我必须如何指定尺寸?

最佳答案

你需要指定指针的大小,你需要让指针指向一个有效的内存,仅此而已。此外,没有必要使用malloc()。你也可以

  • 通过分配器函数、malloc() 或 family 将内存分配给指针
  • 使指针指向任何其他 char 变量(或数组)的地址

为了详细说明,您创建了一个 struct data 类型的变量 var,然后让 var->name 指向一个有效的 block 内存。

就是说,要使用 malloc() 分配所需的内存大小,您需要提供所需的大小作为 malloc() 的参数(以字节为单位) .

关于c - 如何在 c 结构中使用指向字符的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866663/

相关文章:

c - 如何在 C 中为匿名结构声明全局变量?

C++从文件中读取数据到char *

c - 从中间然后开始迭代数组

c++ - 为什么要指定指针类型?

c - 使用 * 制作循环

c - 如何在while循环中使用结构数组

c++ - 使用 std::sort 对具有结构对的列表进行排序

c++ - 将字符数组拆分为两个字符数组

c - 将字母表写入 char *

c - 从 'void*' 到 char(*) 的非法转换?