Physical memory only influences performance of the programs running in the machine but has nothing to do with any memory related problem of a program (on standard operating systems, embed system follow different rules).
First of all, because I've seen this mistake a lot of times, let's talk about he memory model of the operating system.
Almost every user operating system (I'm thinking here on linux, windows, bsd, etc) uses a virtual memory model. Virtual memory model means each program is given full access to a private virtual memory, that is, a representation of memory storage that doesn't have to have the corresponding physical memory.
The size of this virtual memory equals the range that can be addressed by a single machine register. On 32 bits operating systems that means about 4GB. Now, independently of how much actual memory your system have, your program will always think he has 4GB.
Now, those 4GB are, in fact, shared between your program and the space that the operating system reserves for handling data in kernel mode as well as maintaining the structures needed by your program. Being practical you can count with about 2 or 3 GB depending on your configuration (your OS configuration). All of this has nothing to do with the amount of physical memory you have, you can have 256 MB of RAM an still your program will think he has 2GB at his disposal.
When you allocate memory, the system usually doesn't provide exactly the quantity of memory you ask for. Instead it uses pages, which are blocks of reserved memory (for example 4KB) asigned to your process. When you do that, the OS register that "page" as allocated, but this is still in virtual memory. Internally the OS manages which of those pages are kept on physical memory and which of them are in the swap are (in the HDD). That's the reason that increasing you RAM increases your performance (more pages can be in main memory at the same time, and you have to read less from the HDD) but won't help with a stack overflow (or an Out of memory exception by the way).
And that why increasing your RAM won't help.
Finally, about the Stack Overflow exception ... well It's difficult to tell without seeing the actual code, some good answers have already been given.
Mostly stack overflow comes from a infinite recursion, either direct or indirect (A-->B-->C-->A) but in your concrete case I'd say you're just allocating to much data in the stack.
You have a 70000 sized array. I'm guessing that array is full of value types, which are allocated in the stack which, If I recall correctly (and please don't take this as fact) is 1MB in .NET which might be the reason why you're getting your stack overflow.