我只看到这个的缺点:你可能会遇到StackOverflow :) 为什么不只使用堆呢?
在Java、C和C++中,函数的参数是通过栈传递的。函数体内的普通变量是在栈中创建的。
据我所知,栈对于每个线程都有限制,有一些默认值,但相对较低:1-8 Mb。为什么不使用堆而不是栈呢?两者都在内存中,只是操作系统将地址A到B隔离为堆,将地址C到D隔离为栈。
有可变的参数,它表示有10个4字节的可变参数。如果读了11个,那么你可能会读取一些“内存”垃圾,也许正是你想要的黑客技巧,或者你会得到一个分段错误……如果操作系统把你识别为坏孩子的话。:) 因此,安全不应该成为使用栈的理由。
在Java、C和C++中,函数的参数是通过栈传递的。函数体内的普通变量是在栈中创建的。
据我所知,栈对于每个线程都有限制,有一些默认值,但相对较低:1-8 Mb。为什么不使用堆而不是栈呢?两者都在内存中,只是操作系统将地址A到B隔离为堆,将地址C到D隔离为栈。
有可变的参数,它表示有10个4字节的可变参数。如果读了11个,那么你可能会读取一些“内存”垃圾,也许正是你想要的黑客技巧,或者你会得到一个分段错误……如果操作系统把你识别为坏孩子的话。:) 因此,安全不应该成为使用栈的理由。