void pointer cast segfaults
- From: Andreas Schmidt <schmidt.2004@xxxxxx>
- Date: Wed, 04 May 2005 23:26:37 -0400
I am trying to understand the behavior of void pointers. Can someone
explain to me why I get a segfault for the following program?
#include <stdio.h>
void* plusone(void* i){
int* arg = (int*)i;
int result = (*arg + 1);
return (void*)result;
}
int main(){
void* w1 = (void*)10;
void* result = plusone(w1);
printf("%d", *(int*)result);
}
According to gdb, the cast in the first line of plusone gives the segfault.
Why??
Markus
P.S.: I compiled with gcc 3.2.2
.
- Follow-Ups:
- Re: void pointer cast segfaults
- From: Cian
- Re: void pointer cast segfaults
- From: Emmanuel Delahaye
- Re: void pointer cast segfaults
- From: Old Wolf
- Re: void pointer cast segfaults
- From: Peter Nilsson
- Re: void pointer cast segfaults
- Prev by Date: Re: make compilation fail
- Next by Date: Re: void pointer cast segfaults
- Previous by thread: struct alignment
- Next by thread: Re: void pointer cast segfaults
- Index(es):
Relevant Pages
|