c - 为堆栈上的变量声明指针有什么意义吗?

标签 c pointers

 void my_cool_function() 
 {
   obj_scene_data scene;
   obj_scene_data *scene_ptr = &scene;
   parse_obj_scene(scene_ptr, "test.txt");
 }

如果可以的话,我为什么要像上面那样创建一个指向局部变量的指针

 void my_cool_function() 
 {
   obj_scene_data scene;
   parse_obj_scene(&scene, "test.txt");
 }

以防万一它是相关的: int parse_obj_scene(obj_scene_data *data_out, char *filename);

最佳答案

在您链接的特定代码中,没有真正的原因。

如果您有一个采用 obj_scene_data ** 的函数,那么它在功能上可能是必需的。您不能执行 &&scene,因此您必须在传递地址之前创建一个局部变量。

关于c - 为堆栈上的变量声明指针有什么意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977222/

相关文章:

c - 如何从 char 函数返回字符串

python - 在 Python 中删除一个对象和对它的所有引用?

c - C 中 Union Struct 的动态数据结构

C 程序错误

c++ - 如何将 ASN 中的 SIZE OF 运算符与另一个变量组合?

c++ - 为什么指向按值传递的 char 的指针找不到空终止符?

c - 与 const 相同的地址和不同的值

c - 将二维数组传递给常量参数的函数

c++ - C++ 中的指针和引用错误

sql - Oracle Pro*C -- 段错误(核心已转储)