malloc中的指针数组是什么意思?

malloc中的指针数组是什么意思?,c,C,我的问题可能很幼稚。dup[2]是什么意思?它是指向malloced内存中第三个字符的指针还是malloced内存中第三个字符的值?我搜索过谷歌,但没有找到解释这一点的结果。非常感谢您的时间。dup[2]在语义上与*(dup+2)相同。因此,它是由dup指向的第三个字节的值。即,存储器地址为: unsigned char *dup = malloc(size); 请注意,malloc不会初始化返回的内存,因此严格来说,dup[2]的值可以是任何值。dup[2]在语义上与*(dup+2)相同。因

我的问题可能很幼稚。
dup[2]
是什么意思?它是指向malloced内存中第三个字符的指针还是malloced内存中第三个字符的值?我搜索过谷歌,但没有找到解释这一点的结果。非常感谢您的时间。

dup[2]
在语义上与
*(dup+2)
相同。因此,它是由
dup
指向的第三个字节的值。即,存储器地址为:

unsigned char *dup = malloc(size);

请注意,
malloc
不会初始化返回的内存,因此严格来说,
dup[2]
的值可以是任何值。

dup[2]
在语义上与
*(dup+2)
相同。因此,它是由
dup
指向的第三个字节的值。即,存储器地址为:

unsigned char *dup = malloc(size);
请注意,
malloc
不会初始化返回的内存,因此严格来说,
dup[2]
的值可以是任何值

这是malloced内存中第三个字符的值

这个

dup[2]
相当于
*(dup+2)
+2
隐式地起着类似于
+2*sizeof(char)
的作用

如果您想要一个指向内存中第三个字符的指针,而不取消对它的引用,那么您只需使用与上面相同的方法。如果没有解引用运算符:

dup, dup+1, dup+2, ....., dup+size-1
这是malloced内存中第三个字符的值

这个

dup[2]
相当于
*(dup+2)
+2
隐式地起着类似于
+2*sizeof(char)
的作用

如果您想要一个指向内存中第三个字符的指针,而不取消对它的引用,那么您只需使用与上面相同的方法。如果没有解引用运算符:

dup, dup+1, dup+2, ....., dup+size-1

显然,
dup[k]
在本例中表示字符串的第三个字符,这与
*(dup+2)
非常相似

支持代码如下:

unsigned char *thirdChar = dup + 2;
#包括
#包括
int main(){
无符号字符*dup=malloc(10);
扫描频率(“%s”,dup);
printf(“%c”,dup[2]);
printf(“\n%c”,*(dup+2));
返回0;
}

两个
printf
语句的输出相同,这使它非常清楚。

显然,
dup[k]
在本例中表示字符串的第三个字符,它与
*(dup+2)
非常相似

支持代码如下:

unsigned char *thirdChar = dup + 2;
#包括
#包括
int main(){
无符号字符*dup=malloc(10);
扫描频率(“%s”,dup);
printf(“%c”,dup[2]);
printf(“\n%c”,*(dup+2));
返回0;
}

这两个printf语句的输出都是相同的,这使它非常清楚。

在谷歌上找到这个应该很容易,尽管在谷歌上找到这个应该很容易