gpt4 book ai didi

c - 在指向字符串的指针数组中,所有字符串是否都存储在连续的内存位置?

转载 作者:太空宇宙 更新时间:2023-11-04 06:50:45 24 4
gpt4 key购买 nike

当我实现一个指向字符串的指针数组时,我知道字符串文字的字符将存储在连续的内存位置,每个字符串的基地址将存储在 char 指针中,这些指针本身也将是存储在连续的内存位置,但字符串是否也存储在连续的内存位置,如果是,请解释正确的原因。例如 - 如果字符串“akshay”的基地址是 182,那么下一个字符串“parag”的基地址将是 189,如果是,为什么会这样

char *names[]={ 
"akshay",
"parag",
"raman",
"srinivas"
"gopal",
"rajesh"
};

最佳答案

没有。

给定你的代码

char *names[]={ 
"akshay",
"parag",
"raman",
"srinivas",
"gopal",
"rajesh"
};

没有特别的理由期望字符串本身以任何特定的相互关系存储。

一种可能的安排可能是

names: 0x1002030: 0x100204c
0x1002034: 0x100205a
0x1002038: 0x100206c
0x100203c: 0x1002073
0x1002040: 0x1002054
0x1002044: 0x1002060
0x1002048:
0x100204c: aksh
0x1002050: ay
0x1002054: gopa
0x1002058: l pa
0x100205c: rag
0x1002060: raje
0x1002064: sh
0x1002068:
0x100206c: rama
0x1002070: n s
0x1002074: rini
0x1002078: vas

附言对于它的值(value),我在两个不同的编译器下尝试了您的代码,并且六个字符串 事实上是连续存储的。我并不感到惊讶,但如果它们以其他顺序存储,我也不会感到惊讶。

关于c - 在指向字符串的指针数组中,所有字符串是否都存储在连续的内存位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com