At 04:24 PM 10/23/2007, Harald Schmalzbauer wrote:
Am Dienstag, 23. Oktober 2007 22:24:54 schrieb Bill Moran:
> In response to cpghost <[EMAIL PROTECTED]>:
> > On Tue, 23 Oct 2007 20:44:52 +0200
> >
> > Harald Schmalzbauer <[EMAIL PROTECTED]> wrote:
> > > The first one was for example the attached code: Why does it segfault?
> >
> > Mailman ate the attachment... Can't see it here.
>
> I may be out of line, but I think if you're using FreeBSD as your
> learning platform, that it wouldn't be a problem to ask this list.
>> Harald Schmalzbauer wrote:
> > Am Dienstag, 23. Oktober 2007 21:43:52 schrieben Sie:
> >>> Hello Aryeh,
> >>>
> >>> I'm willing to pay fair fees, but are you interested in "micro payment"
> >>> ;) ?
> >>
> >> For other reasons I love micro payments.
> >>
> >>> Serious, I'll have the one or other short question per week (I'm
> >>> usually busy, just making spare time lessons from my book (UTC-1 spare
> >>> time)).
> >>
> >> Just so I know what level to present on what is your background in CS
> >> and programming?
> >
> > CS??
> > I'm able to solve problems analytically, but I don't know any language
> > really well.
> > I know bourne shell, csh, pascal, and basic. And a tiny bit asm, but
> > that's been on ZX81.
>
> Although, you'll have to include your code inline to get past the
> sanitizers.
Thanks all,
here was my example, just for completeness, I found mentors for my needs.
Thanks a lot to all!
#include <stdio.h>
void main()
{
short nnote;
// Numerischen Notenwert einlesen
printf("Bitte numerischen Schulnotenwert eingeben: ");
scanf("%d",&nnote);
switch (nnote)
{
case 1: printf("Die Note %d entspricht sehr gut.",nnote);
break;
case 2: printf("Die Note %d entspricht gut.",nnote);
break;
case 3: printf("Die Note %d entspricht befriedigend.",nnote);
break;
case 4: printf("Die Note %d entspricht ausreichend.",nnote);
break;
case 5: printf("Die Note %d entspricht mangelhaft.",nnote);
break;
case 6: printf("Die Note %d entspricht ungenügend.",nnote);
break;
default: printf("%d ist keine zulässige Schulnote!");
}
printf("\n");
}
P.S.:
I found that declaring nnote as int soleves my problem, but I couldnÄt
understand why.
Another one was the result of default: nnote was -1077942208 instead of 9 for
example.
if you check the man page on scanf:
d Matches an optionally signed decimal integer; the next pointer must
be a pointer to int.
You shouldn't try to put a short into an int. Always declare the correct
size for variables. Your segv is because scanf was trying to put an int
where it won't fit.
You will get the same result if you go off the end of an array.
-Derek
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"