Does stack limit in c is higher than stack limit in java?

algorithm
c
data-structure
java
recursion
stack

#1

I was solving one problem on codechef and I used recursion, when I am submitted it’s solution in c and it was a successful submission. But when I tried to do it in java I got NZEC error. does it mean c has higher stack limit for executing recursive calls than java.


#2

Can you provide link to Java code?


#3

Very good answer link here for What are the various reasons that can cause NZEC error on online coding platforms?


#4

Yes Stack limit in Java is less than that of C. I also faced some problems initially. Anyways you can increase the stack limit in Java by using multi-threading. Create thread for each recursion which will have it own stack limit.

Here is code snippet to create the thread

new Thread(null, new Runnable() {
            public void run() {
                try {
                    new ClassName().functionName();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (StackOverflowError e) {
                    System.out.println("RTE");
                }
            }
        }, "1", 1 << 26).start();

Write the above code snippet in main Function. You can see the sample solution here


#5

Your Question should be treated as compiler and OS specific.

The Standard (language) does’n mandate the min/max stack size and doesn’t specifies the location of the stack memory.


#6

This problem is faced by many coder/programmers.
Stack limit as answered above is smaller and can be increased.
For more detail visit This .


#7

@abhiroj786

https://www.codechef.com/viewsolution/9476321

see function which is named as

findSet(int a)


#8

@ankurverma1994

does this technique compromises the performance??


#9

@ankurverma1994

That link is not accessible to me, It says “403 Access denied”.


#10

No it doesn’t compromise with the performance.You can view any of my recent submission. Here is other sample solution.


#11

Thanks @ankurverma1994


#12

If this answers your question then mark it as accepted and close the question.


#13

@ankurverma1994

Isn’t there any limit to number of threads that can execute simultaneously??


#14

There is limit to create the number of threads. I don’t know exactly how much. You can google it to learn more about it. The code snippet that I gave you, will not give StackOverflowError in Competitive Programming if your algorithm is correct.