簡體   English   中英

如何為結構體中的指針所指向的數組元素插入值

[英]How do I insert a value for an element of an array that is pointed by a pointer in a struct

我目前有一個結構,其中包含一個指向指針數組的指針。 我試圖給指針數組中的一個元素賦值,但是遇到了段錯誤。

aStruct->anArray[0]->string = test;

aStruct包含一個char ** anArray和char * string。 char * test =“測試”。

當我嘗試做我做的事情時,我遇到了分割錯誤。 該命令無效嗎?

struct aStruct
{
   char **anArray;
};

我用calloc制作了一個大小為10的數組。

 aStruct->anArray[0]->string = test; 

aStruct包含一個char ** anArray和char * string。 char * test =“測試”。

該命令無效嗎?

當然不是。 aStruct->anArray[0]將為char*並且沒有成員->string

除此之外,如果它確實可以編譯並且您只發布了錯誤的代碼,則如果正確分配anArray並具有正確的大小,就不會出現分段錯誤。 因此,您在程序中需要這樣的內容:

aStruct->anArray = malloc(size * sizeof(*aStruct->anArray));

其中大小至少為一種,但通常需要訪問的元素數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM