我正在嘗試使用結構進行實驗並提出了一個問題當我使用指針將數據分配給結構成員的字符數組時,編譯器將引發錯誤:「賦值給數組類型」。在我的代碼中,我知道一個數組使用靜態內存分配和指針使用malloc進行動態內存分配。有人可以告訴我如何解決這個問題。 Code for passing the structure pointer to a function to print the structure data使用指針將數據分配給結構成員的字符數組
-1
A
回答
0
在你的榜樣「C」是20個字節數組,所以你可以使用的strcpy:
strcpy(struct_pointer->c, "hellos");
-1
請記住,「打着招呼」是不是同一類型的使用char [20],所以你應該試試這個:
strcpy(struct_pointer->c, "hellos");
,而不是分配的const char*
到char[20]
可變
0
你的代碼
struct_pointer->c="hellos"
實際上告訴編譯器做到以下幾點 - 分配內存串"hellos"
加空終止和指向此內存分配給struct_pointer->c
,這已經是分配的,因此編譯器的抱怨是完全有效的。在C你不能只指定一個字符數組到另一個數組,你需要使用任何類型的存儲複製功能,例如
strcpy(struct_pointer->c, "hellos")
In my code I know that an array uses static memory allocation and pointer uses malloc for dynamic memory allocation
這不是那樣的,在C你沒有得到自動動態內存分配,除非您明確地調用malloc
或其變體。內存"hellos"
也分配在堆棧
相關問題
- 1. 將字符指針分配給字符指針數組
- 2. 分配結構數組中的指針
- 3. 將字符分成char指針數組
- 4. 訪問結構成員字符指針
- 5. 錯誤分配指針數組結構
- 6. 指針訪問成員指針的數組結構
- 7. 將數組的值分配給指針
- 8. 如何將成員函數分配給重載的成員函數指針?
- 9. 將數組的內存分配給字符指針
- 10. 使用指針訪問結構成員的垃圾數據
- 11. 分配結構指針分配/釋放動態數組用C
- 12. C++使用結構指針更新數據成員
- 13. 如何將char *分配給函數內的結構成員?
- 14. 將字符串數組傳遞給使用指針的函數
- 15. 使用指針訪問結構成員
- 16. 將類分配給結構數組c#
- 17. 將指針傳遞給成員函數
- 18. 將字符串賦值給C中的一個結構成員(指針)
- 19. 結構成員中的void指針和函數指針
- 20. 指向結構的指針數組的動態分配
- 21. 賦值給結構指針數組
- 22. 分配和排序指向現有結構的指針數組
- 23. 通過指針修改結構成員傳遞給函數
- 24. 將字符數組賦值給結構中的字符數組
- 25. 指定類函數的結構成員函數指針
- 26. 將C++函數指針分配給同一對象的成員函數
- 27. 將結構(指向結構?的指針?)傳遞給函數
- 28. C:通過指針設置結構的數組成員
- 29. 將任意結構指針的數組傳遞給C函數?
- 30. 使用指針成員變量將數據輸入到結構體中