C++ 在c/c+中分配指针+;

C++ 在c/c+中分配指针+;,c++,c,pointers,reference,C++,C,Pointers,Reference,我浏览了一些博客,详细介绍了OpenSSL心跳实现的易受攻击代码 我发现这句话: unsigned char *P = &s->s3->rrec.data[0], *p1; 我不明白的是,这个指针*p是如何分配两个不同的值的? 一个是: &s->s3->rrec.data[0] (also, why is he referencing s?) 另一个是 *p1 为什么给这个指针分配了两个不同的值?下面的语句 unsigned char *P = &

我浏览了一些博客,详细介绍了OpenSSL心跳实现的易受攻击代码

我发现这句话:

unsigned char *P = &s->s3->rrec.data[0], *p1;
我不明白的是,这个指针*p是如何分配两个不同的值的? 一个是:

&s->s3->rrec.data[0]  (also, why is he referencing s?)
另一个是

*p1

为什么给这个指针分配了两个不同的值?

下面的语句

unsigned char *P = &s->s3->rrec.data[0], *p1;
相等于

unsigned char *P = &s->s3->rrec.data[0];
unsigned char *p1;
这进一步等于

unsigned char *P;
unsigned char *p1;
P = &s->s3->rrec.data[0];
在C语言中,
&s->s3->rrec.data[0]
表示获取
s->s3->rrec.data[0]
的地址


哦,顺便说一下,
无符号字符*p=&s->s3->rrec.data[0]
是指针变量
P
的定义和初始化,其中没有赋值。

P
p1
是两个不同的变量<代码>p分配了一个值,
p1
没有。就这些@barakmanos,你为什么不把这个作为一个答案来发表呢?也许值得指出的是,既然OP问到了这一点,也没有任何作业在进行。