[英]pointer assignment to const char*[] in c
我想分配一个指向const char *数组的指针,如下所示:
#include <stdio.h>
const char *keyContainer[2]= {"test", "test2" };
const char *keyPtr = &keyContainer;
int main(void)
{
printf("%s\n", keyPtr[0]); //test
printf("%s\n", keyPtr[1]); //test2
return 0;
}
keyPtr包含keyContainer的地址,但是我无法访问keyContainer的内容。
使用此功能时,会收到警告“从不兼容的指针类型初始化[默认启用]”,这是因为keyContainer
是char *[2]
,我们可以说它与 char **
相似 (不一样!)。 。 因此,您需要使用const char **keyPtr = keyContainer;
。
例如 :
#include <stdio.h>
const char *keyContainer[2]= {"test", "test2" };
const char **keyPtr = keyContainer;
int main(void)
{
printf("%s\n", keyPtr[0]);
printf("%s\n", keyPtr[1]);
return 0;
}
希望这可以帮助 !
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.