[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.c++

Segfault on new?

Scoots

9/30/2008 9:50:00 PM

Okay, I have a really simple program that illustrates a problem I'm
having.

I'm using VC++6.0 (yes, an upgrade is in the works). Anywho, I have
this problem:


int main (int argc, char * argv[])
{
int iNumFuncs = 1;
int * hey = new int [iNumFuncs]; <<--Segfaults. ??????
return 0;
}


Is my installation just gone out the window, or am I so incredibly
tired that I can't even do a dynamic allocation anymore?
7 Answers

Victor Bazarov

9/30/2008 9:55:00 PM

0

Scoots wrote:
> Okay, I have a really simple program that illustrates a problem I'm
> having.
>
> I'm using VC++6.0 (yes, an upgrade is in the works). Anywho, I have
> this problem:
>
>
> int main (int argc, char * argv[])
> {
> int iNumFuncs = 1;
> int * hey = new int [iNumFuncs]; <<--Segfaults. ??????
> return 0;
> }
>
>
> Is my installation just gone out the window, or am I so incredibly
> tired that I can't even do a dynamic allocation anymore?

The code seems OK (the memory leak is beside the point, I guess). If
you need your question answered with VC++ in mind, then you need to ask
it in the VC++ newsgroup, though: microsoft.public.vc.language.

There can be some compiler specific settings that are off-topic here,
try the other newsgroup and see what they say...

V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask

Scoots

9/30/2008 10:02:00 PM

0



On Sep 30, 5:54 pm, Victor Bazarov <v.Abaza...@comAcast.net> wrote:
> Scoots wrote:
> > Okay, I have a really simple program that illustrates a problem I'm
> > having.
>
> > I'm using VC++6.0 (yes, an upgrade is in the works). Anywho, I have
> > this problem:
>
> > int main (int argc, char * argv[])
> > {
> > int iNumFuncs = 1;
> > int * hey = new int [iNumFuncs]; <<--Segfaults. ??????
> > return 0;
> > }
>
> > Is my installation just gone out the window, or am I so incredibly
> > tired that I can't even do a dynamic allocation anymore?
>
> The code seems OK (the memory leak is beside the point, I guess). If
> you need your question answered with VC++ in mind, then you need to ask
> it in the VC++ newsgroup, though: microsoft.public.vc.language.
>
> There can be some compiler specific settings that are off-topic here,
> try the other newsgroup and see what they say...
>
> V
> --
> Please remove capital 'A's when replying by e-mail
> I do not respond to top-posted replies, please don't ask- Hide quoted text -
>
> - Show quoted text -

Well, the memory leak is kinda irrelevant, I just commented out the
few hundred other lines in the code and didn't bother posting them
here. There IS a delete[], it's just commented out.

And I didn't think this was a VC++ question in particular, since I'm
not using a single call to anything relating to VC++. What I posted
should be standard c++ in it's entirety.

My question, is what can be causing that. And I believe your answer
was: "Compiler."

Thanks,
~Scoots.

(P.S. I appologize for any seeming rudeness, it is unintentional.)

Chris Gordon-Smith

9/30/2008 11:04:00 PM

0

Scoots wrote:

>
>
> On Sep 30, 5:54 pm, Victor Bazarov <v.Abaza...@comAcast.net> wrote:
>> Scoots wrote:
>> > Okay, I have a really simple program that illustrates a problem I'm
>> > having.
>>
>> > I'm using VC++6.0 (yes, an upgrade is in the works). Anywho, I have
>> > this problem:
>>
>> > int main (int argc, char * argv[])
>> > {
>> > int iNumFuncs = 1;
>> > int * hey = new int [iNumFuncs]; <<--Segfaults. ??????
>> > return 0;
>> > }
>>
>> > Is my installation just gone out the window, or am I so incredibly
>> > tired that I can't even do a dynamic allocation anymore?
>>
>> The code seems OK (the memory leak is beside the point, I guess). If
>> you need your question answered with VC++ in mind, then you need to ask
>> it in the VC++ newsgroup, though: microsoft.public.vc.language.
>>
>> There can be some compiler specific settings that are off-topic here,
>> try the other newsgroup and see what they say...
>>
>> V
>> --
>> Please remove capital 'A's when replying by e-mail
>> I do not respond to top-posted replies, please don't ask- Hide quoted
>> text -
>>
>> - Show quoted text -
>
> Well, the memory leak is kinda irrelevant, I just commented out the
> few hundred other lines in the code and didn't bother posting them
> here. There IS a delete[], it's just commented out.
>
> And I didn't think this was a VC++ question in particular, since I'm
> not using a single call to anything relating to VC++. What I posted
> should be standard c++ in it's entirety.
>
> My question, is what can be causing that. And I believe your answer
> was: "Compiler."
>
> Thanks,
> ~Scoots.
>
> (P.S. I appologize for any seeming rudeness, it is unintentional.)

I don't use arrays much, so the syntax is a bit unfamiliar to me. However,
its working fine here with gcc version 4.3.1 on OpenSUSE 11.0

int main (int argc, char * argv[])
{
int iNumFuncs = 1;
int * hey = new int [iNumFuncs]; //  <<--Segfaults.   ??????
hey[0] = 99;
cout << "hey = " << hey << " hey[0] = " << hey[0] << endl;
return 0;
}

Output: hey = 0x804b008 hey[0] = 99

Chris Gordon-Smith
www.simsoup.info




joseph cook

10/1/2008 2:46:00 AM

0

On Sep 30, 5:49 pm, Scoots <linkingf...@msn.com> wrote:

> int main (int argc, char * argv[])
> {
> int iNumFuncs = 1;
> int * hey = new int [iNumFuncs];   <<--Segfaults.   ??????
> return 0;
>
> }

Is this really the entire program now? You don't have any include
files, and you are not linking in anything at the link phase? I
would be curious to step through it in a debugger... or add a try/
catch block and see if you are getting an exception thrown that you
aren't seeing for some reason...

Joe Cook


Paavo Helde

10/1/2008 8:10:00 PM

0

Scoots <linkingfire@msn.com> kirjutas:

> Okay, I have a really simple program that illustrates a problem I'm
> having.
>
> I'm using VC++6.0 (yes, an upgrade is in the works). Anywho, I have
> this problem:
>
>
> int main (int argc, char * argv[])
> {
> int iNumFuncs = 1;
> int * hey = new int [iNumFuncs]; <<--Segfaults. ??????
> return 0;
> }

With VC++ you should not be able to get a segfault. At best you could hope
for an access violation ;-)

This aside, your code looks fine. Are you sure you posted the actual code?

Paavo


Rolf Magnus

10/1/2008 8:56:00 PM

0

Scoots wrote:

> On Sep 30, 5:54 pm, Victor Bazarov <v.Abaza...@comAcast.net> wrote:
>> Scoots wrote:
>> > Okay, I have a really simple program that illustrates a problem I'm
>> > having.
>>
>> > I'm using VC++6.0 (yes, an upgrade is in the works). Anywho, I have
>> > this problem:
>>
>> > int main (int argc, char * argv[])
>> > {
>> > int iNumFuncs = 1;
>> > int * hey = new int [iNumFuncs]; <<--Segfaults. ??????
>> > return 0;
>> > }
>>
>> > Is my installation just gone out the window, or am I so incredibly
>> > tired that I can't even do a dynamic allocation anymore?
>>
>> The code seems OK (the memory leak is beside the point, I guess). If
>> you need your question answered with VC++ in mind, then you need to ask
>> it in the VC++ newsgroup, though: microsoft.public.vc.language.
>>
>> There can be some compiler specific settings that are off-topic here,
>> try the other newsgroup and see what they say...
>
> Well, the memory leak is kinda irrelevant, I just commented out the
> few hundred other lines in the code and didn't bother posting them
> here. There IS a delete[], it's just commented out.
>
> And I didn't think this was a VC++ question in particular, since I'm not
using a single call to anything relating to VC++.

Your question wasn't specific to VC++. It was fine, but cannot be answered
here.

> What I posted should be standard c++ in it's entirety.

Yes, it is.

> My question, is what can be causing that. And I believe your answer
> was: "Compiler."

Yes. Regarding standard C++, your code is - as far as I can see - correct,
so it must be some compiler issue. And for that, a VC++ group will be more
appropriate.

Scoots

10/3/2008 3:56:00 PM

0

Indeed, this was the code, minus a few thousand lines that were
essentially commented out (the calls to other files/functions) which
is why I took out the includes. But I had yes, actually reduced my
main to that through commenting out code.

And yes, it wasn't a true segfault :-)

Too many years in school to take segfault out of my vocabulary though!

I took your advice and asked over there and the issue has been...
well, avoided if not resolved.