我基本上想要C的等价物(好吧,只是数组部分,我不需要类和字符串解析等等):
public class Example
{
static int[] foo;
public static void main(String[] args)
{
int size = Integer.parseInt(args[0]);
foo = new int[size]; // This part
}
}
请原谅我对C语言的无知。我已经被java腐 eclipse 了;)
6条答案
按热度按时间nnt7mjpx1#
xmakbtuz2#
在C语言中,如果忽略错误检查,就可以这样做:
如果您不需要全局变量,并且正在使用C99,则可以执行以下操作:
它使用VLA -可变长度数组。
monwx1rj3#
不幸的是,这个问题的许多答案,包括被接受的答案,都是 * 正确的 *,但并不 * 等同于OP的代码片段 *。请记住,
operator new[]
调用每个数组元素的默认构造函数。对于像int
这样没有构造函数的POD类型,它们是默认初始化的(读作:零初始化,参见The C++ Standard的§8.5 ¶5-7)。我刚刚将
malloc
(分配未初始化的内存)替换为calloc
(分配已清零的内存),因此给定C++代码段的等效代码为很抱歉重提这个老问题,但我觉得不加评论就离开是不对的(我没有必要的代表);- )
h5qlskok4#
如果需要初始化数据,可以使用calloc:
这样,分配的内存将被初始化为零,这可能很有用。注意,可以使用任何数据类型来代替int。
tquggr8v5#
jjjwad0x6#
(2)如果一个函数的值是0,则该函数的值为0;这将需要u在声明数组在函数在运行时实现排序算法这将工作在Turbo c++也在这里我在合并排序中应用它
在此输入代码
https://drive.google.com/file/d/12DlUSMFG7YMBWm5gJlF-gSVauJ6yAD5O/view?usp=share_link