小编use*_*487的帖子

我应该如何在C结构中声明字符串?

您好我是这个网站的新手,我需要一些帮助来理解在C中编码需要字符串的结构时会被视为"规范"的内容.基本上我想知道在使用C中的结构来跟踪结构所需的所有内存时,下列哪种方式将被视为"行业标准":

1)固定尺寸字符串:

typedef struct
{
    int damage;
    char name[40];
} Item;
Run Code Online (Sandbox Code Playgroud)

我现在可以使用 sizeof(Item)

2)字符数组指针

typedef struct
{
    int damage;
    char *name;
} Item;
Run Code Online (Sandbox Code Playgroud)

我知道我可以存储name使用第二个变量的大小,但还有另一种方法吗?

i)使用固定尺寸是否有任何其他优势(1)

char name[40];
Run Code Online (Sandbox Code Playgroud)

与执行以下操作并使用指向char数组的指针(2)?

char *name;
Run Code Online (Sandbox Code Playgroud)

如果是的话,有什么好处?

ii)此外,字符串是否使用指向char数组(2)的指针将按顺序存储在结构之后(紧接在指向字符串的指针之后),还是存储在内存中的其他位置?

iii)我想知道如何找到char *字符串变量的长度(不使用a size_t或整数值来存储长度)

c arrays string pointers

6
推荐指数
1
解决办法
3473
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1

string ×1