| | |
unix/C++ segmentation fault
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Jan 2005
Posts: 24
Reputation:
Solved Threads: 0
hi there. i am new to C++ AND unix. this assignment that i have is really really easy, but the specifics of C++ and getting around in Unix is making it really hard and time consuming. i have a really small program that should be working, but i am getting the wrong output AND at the end of the output i get a Segmentation fault.
i have a function called series that is declared and works fine. i have inserted a cout<< to check that the function is working right. but i am still getting the wrong output AND this error. am i doing something illegal? using the function result as the array index? i know i am not telling you much about the code, i am just wondering if there are any GLARING unix or C++ no-nos that anyone sees.
thanks
crq
i have a function called series that is declared and works fine. i have inserted a cout<< to check that the function is working right. but i am still getting the wrong output AND this error. am i doing something illegal? using the function result as the array index? i know i am not telling you much about the code, i am just wondering if there are any GLARING unix or C++ no-nos that anyone sees.
C++ Syntax (Toggle Plain Text)
int main (){ const int MAX_NUM = 60; const int MAX_CALLS = 41; int num_calls [MAX_CALLS]; int k = 0; for(int i=1; i<=MAX_NUM; i++){ num_calls[i] = 0; cout<< series(i) <<endl; if ((series (i)) < MAX_CALLS){ num_calls[series (i)]++; } else{ k++; } } for(int l=1; l<MAX_CALLS; l++){ cout<< l << " " << num_calls[l] <<endl; } cout<< "and " << k << "numbers have series length greater than 40" <<endl; }
thanks
crq
•
•
Join Date: Mar 2004
Posts: 1,620
Reputation:
Solved Threads: 51
Hi,
First, and this is a style thing... I hate it when people place the brace { on the same line as the expression... just does not look nice to me.
Adjusted:
I notice that you declare main() to be of type INT, and you do not return any number to the OS. I wonder if that is hanging you up.
I would have tried, but you didn't bring along your whole program, and I wasn't about to code it further. I couldn't compile because I had no idea what series is, and at 11:30pm, I am not to creative.
Christian
First, and this is a style thing... I hate it when people place the brace { on the same line as the expression... just does not look nice to me.
Adjusted:
C++ Syntax (Toggle Plain Text)
int main () { const int MAX_NUM = 60; const int MAX_CALLS = 41; int num_calls [MAX_CALLS]; int k = 0; for(int i=1; i<=MAX_NUM; i++) { num_calls[i] = 0; cout<< series(i) <<endl; if ((series (i)) < MAX_CALLS) { num_calls[series (i)]++; } else { k++; } } for(int l=1; l<MAX_CALLS; l++) { cout<< l << " " << num_calls[l] <<endl; } cout<< "and " << k << "numbers have series length greater than 40" <<endl; }
I notice that you declare main() to be of type INT, and you do not return any number to the OS. I wonder if that is hanging you up.
I would have tried, but you didn't bring along your whole program, and I wasn't about to code it further. I couldn't compile because I had no idea what series is, and at 11:30pm, I am not to creative.
Christian
•
•
Join Date: Jan 2005
Posts: 24
Reputation:
Solved Threads: 0
THANKS for the style tips. i agree with you. i like lots of spacing in my coding. however, i have been beaten over the head with doing it the exact opposite ....
that stuff makes me crazy, but it seems to be the going style where i am. anything else is a bit "novice" or something ... silly, though it may be.
i think i have figured it out, though. i had some uninitialized array stuff that was making my code not work ... and yes i need to check on the number part. either i left it off when i copied and pasted ... or i lost it somewhere in my coding. i am so new at unix, that i don't know how to go to my file, and open it in the editior. all i know how to do is VIEW the file, copy it. then open a text editor window and paste it in there EVERY time i want to make a change after i compile and run ... ARRRRGGGHHH!!
thanks, though.
crq
C++ Syntax (Toggle Plain Text)
for(int i=1; i<MAX_CALLS; i++){ h[i]=0} .... ........... .......
i think i have figured it out, though. i had some uninitialized array stuff that was making my code not work ... and yes i need to check on the number part. either i left it off when i copied and pasted ... or i lost it somewhere in my coding. i am so new at unix, that i don't know how to go to my file, and open it in the editior. all i know how to do is VIEW the file, copy it. then open a text editor window and paste it in there EVERY time i want to make a change after i compile and run ... ARRRRGGGHHH!!
thanks, though.
crq
>I hate it when people place the brace { on the same line as the expression
Get over it. Style issues are a matter of opinion, and you shouldn't push your opinions on other people.
>I wonder if that is hanging you up.
That's legal C++. 0 will be returned by default if the compiler supports that feature from the standard. Of course, if Turbo C++ v.old_as_dirt is the OP's compiler, it's undefined behavior.
>cout<< series(i) <<endl;
What is series? Is it a type? Is it a function? Most likely your problem is in the code that you neglected to post.
Get over it. Style issues are a matter of opinion, and you shouldn't push your opinions on other people.
>I wonder if that is hanging you up.
That's legal C++. 0 will be returned by default if the compiler supports that feature from the standard. Of course, if Turbo C++ v.old_as_dirt is the OP's compiler, it's undefined behavior.
>cout<< series(i) <<endl;
What is series? Is it a type? Is it a function? Most likely your problem is in the code that you neglected to post.
I'm here to prove you wrong.
•
•
Join Date: Jan 2005
Posts: 24
Reputation:
Solved Threads: 0
thanks for replying!
i actually found the problem ... and it was a goof-up silly mistake. i was doing things in an array element that hadn't been initalized. i am still in java mode it seems (elements of int arrays are by default initalized to 0). somehow that was producing the segmentation fault. i still don't know what that term means, but it turned out to be something silly. i am so unfamiliar with C++ and with Unix that i was sure my mistake was the result of something that i wouldn't know to do.
oh, series is a function. was declared above. i had tested it and i had the problem isolated to 2 lines because of the cout<< calls that i had going.
thanks for the help .. i am sure i will need more in the coming weeks.
thanks
crq
i actually found the problem ... and it was a goof-up silly mistake. i was doing things in an array element that hadn't been initalized. i am still in java mode it seems (elements of int arrays are by default initalized to 0). somehow that was producing the segmentation fault. i still don't know what that term means, but it turned out to be something silly. i am so unfamiliar with C++ and with Unix that i was sure my mistake was the result of something that i wouldn't know to do.
oh, series is a function. was declared above. i had tested it and i had the problem isolated to 2 lines because of the cout<< calls that i had going.
thanks for the help .. i am sure i will need more in the coming weeks.
thanks
crq
•
•
Join Date: Jan 2005
Posts: 24
Reputation:
Solved Threads: 0
•
•
•
•
Originally Posted by sykobag
In the unix that I used last semester in school the editor was called "pico" just type that on the command line and the text editor comes up. I don't know if that is standard unix or if it was on the server that I was using but you can always give it a shot.
i am using pico too. i type pico and a blank window comes up. the problem that i have is this ... when i quit a session, save my file and want to come back to it. if i log back on and type pico, i get a blank editor. how do i call pico for the file that i want to edit instead of calling a blank window each time?
thanks
crq
•
•
Join Date: Jan 2005
Posts: 3
Reputation:
Solved Threads: 0
•
•
•
•
Originally Posted by crq
hey, sykobag,
i am using pico too. i type pico and a blank window comes up. the problem that i have is this ... when i quit a session, save my file and want to come back to it. if i log back on and type pico, i get a blank editor. how do i call pico for the file that i want to edit instead of calling a blank window each time?
thanks
crq
•
•
Join Date: Jan 2005
Posts: 24
Reputation:
Solved Threads: 0
•
•
•
•
Originally Posted by sykobag
at the bottom of the pico window there should be a load from file or something its been a while since i used it but it will load from a file all of the text you edited before
THANKS!
crq
![]() |
Similar Threads
Other Threads in the C++ Forum
- Previous Thread: Display formatted local date and time
- Next Thread: C/C++ e-book plzz
| Thread Tools | Search this Thread |
api array based beginner binary c++ c/c++ calculator char char* class classes code compile compiler console conversion count delete deploy desktop directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp homeworkhelper iamthwee ifstream input int integer java lib linkedlist linker linux list loop looping loops map math matrix memory news node numbertoword output parameter pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings struct temperature template templates test text text-file tree unix url variable vector video visualstudio win32 windows winsock word wordfrequency wxwidgets






