可变长度的字符

标签 c struct char dynamic-memory-allocation variable-length-array

是否可以定义一个可变长度的char

我有一个长度为 25 的 char“name”(struct 的成员,名为“person”),但我希望它是介于值 1 和 25,因为我想生成具有不同大小且不总是具有相同长度 (25) 的 char 随机字符串。该方法的参数之一是 sizeof(n.name)

注意:n是一个struct(struct person n)。

struct“person”是这样定义的:

    struct person{
       int c; 
       char name[25];
    };

有人吗?

最佳答案

struct person{
   int c; 
   char name[]; /* Variable length array */
};

我认为这应该符合您的目的。

否则你可以使用动态内存分配

char *name;

name 是一个指针,应该分配内存,可以使用 malloc()

关于可变长度的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27710755/

相关文章:

c++ - 访问在 C++ 函数内部的结构中定义的枚举类属性

c - atof() 没有获取 symbian 中的全部值

c++ - 仅当数据从另一端发送时从串口读取(c++)

c - strptime 不适用于时区格式说明符

c - 如果固定部分和小数部分分开存储,如何将定点数相乘?

c++ - 通过指针访问三维数组

c - 当结构体的属性是指向另一个结构体的指针时

c - double 类型的声明变量会自动初始化为 inf

c - C 中指针的传递和赋值

戈朗 : Unzip files in Go gets char encoding problems in the files names when file has been zipped in windows