[英]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.