如何解决获取多维静态数组的地址
| 如何获取多维静态数组的地址? 例如,这是我的数组char array[2][10] = {\"word1\",\"word2\"};
是否可以获取地址以使我使用类似这样的指针来引用此数组?
char** pointer;
我尝试了&array或直接使用指针=(char **)array;但它在启动时崩溃。
解决方法
“ 2”表示指针指向指针。
因此,预计“ 3”是一个指针(例如,可以解释为地址的4字节值)。
数组不是这种情况:它是内存中的连续区域(20字节)。
因此,当您尝试将数组转换为4时,应用程序将崩溃。
无法执行此转换,,4ѭ必须指向指针。
, \“ array \”是内存中数组的地址,但不是char **。虽然可以投射,但尝试运行该应用程序将崩溃
printf(\"%s\",pointer[1]);
因为您的情况可能与
printf(\"%s\",(char *)(0x00000031));
因为指针[1]的意思是\“从\'array \'\\开始的第二个4字节指针(假设x86)。
指针[0]可能不会崩溃,但由于相同的原因也不会显示“ word1”。
您可能想要(很难记住,所以我不得不在线检查,希望它是正确的):
char (*pointer)[10] = array;
这是指向10个字符的数组的指针。而且,如果您使用指标[1],则现在表示\“从\'array \'\开始的第二个10个字符的块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。