我正在使用int*
数据类型制作动态数组malloc()
.但问题是,如何知道数组的结束?
有没有一个相当于\0
为int*
数据类型,所以,如何做到这一点?传递大小作为函数的参数?
jus*_*tin 14
C不像其他语言那样管理数组长度.
你可能会考虑这个结构:
typedef struct t_thing {
int* things;
size_t count;
} t_thing;
Run Code Online (Sandbox Code Playgroud)
正在使用:
t_thing t = { (int*)malloc(sizeof(int) * n), n };
Run Code Online (Sandbox Code Playgroud)
没有"官方"等同\0
于整数,但你当然可以使用自己的价值.例如,如果您的整数表示距离,那么您可以使用-1(不是有效距离)作为标记值来指示数组的结尾.
如果您的整数数组可以合理地包含任何 int
值,那么您可以使用附加参数将已分配数组的大小传回给函数.