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语句的输出都是相同的,这使它非常清楚。在谷歌上找到这个应该很容易,尽管在谷歌上找到这个应该很容易