簡體   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