如何知道int*数组的结尾?

Jac*_*ack 8 c arrays int

我正在使用int*数据类型制作动态数组malloc().但问题是,如何知道数组的结束?

有没有一个相当于\0int*数据类型,所以,如何做到这一点?传递大小作为函数的参数?

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)


Gre*_*ill 9

没有"官方"等同\0于整数,但你当然可以使用自己的价值.例如,如果您的整数表示距离,那么您可以使用-1(不是有效距离)作为标记值来指示数组的结尾.

如果您的整数数组可以合理地包含任何 int值,那么您可以使用附加参数将已分配数组的大小传回给函数.