c-program og to pointere core-dumper

From: Claus Guttesen (none@kometen--gmail.com.lh.bsd-dk.dk)
Date: Wed 31 Jan 2007 - 16:51:26 CET


Date: Wed, 31 Jan 2007 16:51:26 +0100
From: "Claus Guttesen" <none@kometen--gmail.com.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: c-program og to pointere core-dumper

Hej.

Jeg skal overføre nogle værdier som pointere i c, som core-dumper. For
at se hvad jeg gjorde galt, skrev jeg så dette lille program (ingen
applaus tak):

#include <stdio.h>

int print_pointer(int *);

int main(int argc, char *argv[], char *envp[]) {
        int *a;
        *a = 7;
        print_pointer( a );
        return(0);
}

int print_pointer(int *a) {
        printf("a: %i\n", *a);
        return (0);
}

brage~/devel/c%>cc -Wall -o pointer pointer.c
brage~/devel/c%>./pointer
Hej
a: 7

Intet nyt under solen, Med to int-pointere core-dumper den.

#include <stdio.h>

void print_pointer(int *);

int main(int argc, char *argv[], char *envp[]) {
        int *a, *b;
        *a = 7;
        printf("Hej\n");
        print_pointer(a);
        *b = 9;
        return(0);
}

void print_pointer(int *a) {
        printf("a: %i\n", *a);
}

brage~/devel/c%>cc -Wall -o pointer pointer.c
brage~/devel/c%>./pointer
zsh: bus error ./pointer

Dette på (intel) os x 10.4.8. På FreeBSD 6.2 får ver. 2 dette:

design~/devel/c%>cc -Wall -o pointer pointer.c
design~/devel/c%>./pointer
Hej
a: 7
zsh: segmentation fault (core dumped) ./pointer

Hvorfor core-dumper den når jeg forsøger at tildele *b værdien 9?

Hilsen
Claus



This archive was generated by hypermail 2b30 : Wed 31 Jan 2007 - 23:00:05 CET