我目前正在尝试获取动态生成的数组的长度。它是一个结构数组:
typedef struct _my_data_
{
unsigned int id;
double latitude;
double longitude;
unsigned int content_len;
char* name_dyn;
char* descr_dyn;
} mydata;
我像这样初始化我的数组:
mydata* arr = (mydata*) malloc(sizeof(mydata));
然后使用调整它的大小realloc并开始用数据填充它。
然后我尝试使用描述的代码获取其大小here.
sizeof(arr) / sizeof(arr[0])
该操作返回0即使我的数组包含两个元素。
有人可以告诉我我做错了什么吗?
如果您需要知道动态分配数组的大小,则必须自己跟踪它。
The sizeof(arr) / sizeof(arr[0])
该技术仅适用于编译时大小已知的数组,以及 C99 的数组变长数组.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)