gpt4 book ai didi

c - 在 C 中动态创建对象

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:20 25 4
gpt4 key购买 nike

大家好!

我熟悉 JavaScript 和 PHP,但不熟悉 C。我正在尝试使用 C 和 craete colision 算法处理图形。现在,我需要动态地创建对象,就像在更高级的语言中一样。例如,我需要通过我自己的函数创建一个多边形,并使其成为对整个脚本可见的对象。我假设,需要一个结构。

据我所知,函数中声明的所有内容都保留在函数中。如何动态声明全局结构?

最佳答案

C 是一种相当静态的语言。我所说的静态是指,您可以在运行时创建内存,但您需要指针来寻址在编译时声明的内存。也就是说,如果您在运行时需要内存并且不想在编译时声明它,您将需要使用 malloc 和 free(当您使用完内存时)。

要创建一个全局结构,其内存将在运行时创建,您至少需要在编译时有一个指向结构的指针。如果您需要其中的几个结构,您可以创建多个结构的内存,但是如果没有这些结构的数组,遍历这些结构将是乏味的。您将需要在编译时指向结构的指针数组。有一些方法可以使它更加动态,但在我使用 C 和 C++ 的十年左右的时间里,我们从未遇到过其他方法,包括在设备驱动程序中。

当您说在 C 中创建对象时,您实际上没有可以创建的对象,除了通过调用库的函数或从堆中创建内存,然后通过重叠结构或数组指针在其上解释该内存之外的对象.

如果这些参数是通过引用(指向参数的指针)传入的,则函数可以更改参数,并且函数可以不返回任何内容或返回单个数据原子、char、整数、smallint 或指针。

关于c - 在 C 中动态创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9056717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com