【发布时间】:2016-09-15 07:03:44
【问题描述】:
如果我有:
char *name; //this is in a struct
*row->name //row is able to get in the struct
我如何读取 *row->name 以及它返回的内容是什么?
我将链接我正在阅读的代码:http://pastebin.com/MvLXkDCz
【问题讨论】:
-
它返回
name指向的第一个元素。就像row->name[0]应该使用它来避免“混淆”。 -
@iharob 如果 name 未初始化,那么将传递给 sizeof(*row->name) 什么?
-
@don sizeof 在编译时仅使用类型信息进行计算。
-
@don 正如其他人所说,
sizeofdoes not "evaluate" it's operand 所以不会发生任何不好的事情,这实际上是将大小传递给malloc()的好方法,例如,出于多种原因。例如,如果您更改name的类型,则不需要更改每个malloc(),而且因为它总是正确的,所以它可以帮助您分配正确的大小。
标签: c pointers operators dereference