小编kri*_*rav的帖子

((struct name*)0) - > member)在C中做什么?

((struct name*)0) - > member)在C中做什么?

我遇到的实际C语句是这样的:

(char *) &((struct name *)0)->member)
Run Code Online (Sandbox Code Playgroud)

c struct pointers

22
推荐指数
3
解决办法
1939
查看次数

C90中的可变长度结构

GNU C中允许零长度数组,因此可以进行初始化

struct line {
       int length;
       char contents[0];
     };

     struct line *thisline = (struct line *)
       malloc (sizeof (struct line) + this_length);
     thisline->length = this_length;
Run Code Online (Sandbox Code Playgroud)

注意:我在这里指的是这个页面:http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html (提供C中可变长度结构的基本介绍)

它继续说:"在ISO C90中,你必须给内容一个长度为1,这意味着你要浪费空间或使参数复杂化为malloc."

那是什么意思?有人可以举例说明如何在C90中初始化变长结构以帮助理解吗?

c gcc c89

3
推荐指数
1
解决办法
568
查看次数

如何在C中实现rand()/ srand()函数

可能重复:
rand()如何工作?它有一定的倾向吗?有没有比这更好用的东西?

我知道如何实现它.但是,我想了解rand在内部是如何表现的,为什么有必要初始化rand函数的'seed'值.

换句话说 - rand函数如何使用种子值生成随机数?

c random

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×3

c89 ×1

gcc ×1

pointers ×1

random ×1

struct ×1