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