繁体   English   中英

c中指向const char * []的指针分配

[英]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的内容。

使用此功能时,会收到警告“从不兼容的指针类型初始化[默认启用]”,这是因为keyContainerchar *[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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM