我正在尝试使用结构进行实验并提出了一个问题当我使用指针将数据分配给结构成员的字符数组时,编译器将引发错误:“赋值给数组类型”。在我的代码中,我知道一个数组使用静态内存分配和指针使用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. 使用指针成员变量将数据输入到结构体中