可以使用 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/