c - C中的数组成员结构

标签 c arrays struct

最近我查看了一些 C 代码,发现了与以下内容等价的内容:

struct foo {
    int some_innocent_variables;
    double some_big_array[VERY_LARGE_NUMBER];
}

我几乎(但不完全)几乎完全是 C 语言的新手,我认为这个结构由于数组成员而在空间使用方面效率极低,这是否正确?当这个结构作为参数传递给函数时会发生什么?它是否完整地复制到堆栈中,包括整个数组?

在大多数情况下,使用 double *some_pointer 会更好吗?

最佳答案

如果你按值传递 yes 它将复制所有内容。 但这就是指针存在的原因。

//Just the address is passed 
void doSomething(struct foo *myFoo)
{

}

关于c - C中的数组成员结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704244/

相关文章:

c - 使用 libjpeg 读取图像像素数据的 3 维数组的内存分配

c - 尽管我已经添加了项目,为什么此代码仍然打印 1?

arrays - GWT:创建关联的 jsarray

c - 为什么结构体中的函数可以在 C 语言中使用

c++ - 如何同时满足 gcc4.1.2 和 gcc 4.7.3

javascript - 将数组插入数组 Javascript

javascript - 传播 getElementsByClassName 或 querySelectorAll 会在 TypeScript 中产生错误

c - C语言写入和读取文件

C++:如何在结构中使用外部变量

无法在赋值中将 'float*' 转换为 'float'