P
priyanka
Hi,
I am getting segmentation fault in a very simple thing. But I am not
able to figure out waht is wrong. I should be missing something.
char *kernel_rget_pt;
char kernel_rec_buf[5] = {'t', 'e', 'f', 'g', '\n'};
kernel_rget_pt = &kernel_rec_buf[0];
int GetFifo(char *datapt){
printf("Inside GetFifo\n");
printf("address of datapt: 0x%x\n",datapt);
printf("1st position and data in kernel_rec_buf: 0x%x,
%c\n",&kernel_rec_buf[0],kernel_rec_buf[0]);
printf("1st position and data in kernel_rec_buf: 0x%x,
%c\n",kernel_rget_pt,*kernel_rget_pt);
kernel_rget_pt++;
printf("2nd position and data in kernel_rec_buf: 0x%x,
%c\n",&kernel_rec_buf[1],kernel_rec_buf[1]);
printf("2nd position and data in kernel_rec_buf: 0x%x,
%c\n",kernel_rget_pt,*kernel_rget_pt);
//*datapt = *(kernel_rget_pt++);
printf("fdfdf\n");
*(datapt) = *kernel_rget_pt; // segementation fault here
printf("*datapt:%c\n",*datapt);//never gets executed
if(kernel_rget_pt == &kernel_rec_buf[4]) kernel_rget_pt =
&kernel_rec_buf[0];
return -1;
}
I call this function from the main as GetFifo(datapt) where datapt is a
char pointer defined in main. I am not sure why I am getting
segmentation fault at *(datapt) = *kernel_rget_pt; I am not able to
copy even one character.
Can anyone point out where I am wrong ?
Thanks,
Priya
I am getting segmentation fault in a very simple thing. But I am not
able to figure out waht is wrong. I should be missing something.
char *kernel_rget_pt;
char kernel_rec_buf[5] = {'t', 'e', 'f', 'g', '\n'};
kernel_rget_pt = &kernel_rec_buf[0];
int GetFifo(char *datapt){
printf("Inside GetFifo\n");
printf("address of datapt: 0x%x\n",datapt);
printf("1st position and data in kernel_rec_buf: 0x%x,
%c\n",&kernel_rec_buf[0],kernel_rec_buf[0]);
printf("1st position and data in kernel_rec_buf: 0x%x,
%c\n",kernel_rget_pt,*kernel_rget_pt);
kernel_rget_pt++;
printf("2nd position and data in kernel_rec_buf: 0x%x,
%c\n",&kernel_rec_buf[1],kernel_rec_buf[1]);
printf("2nd position and data in kernel_rec_buf: 0x%x,
%c\n",kernel_rget_pt,*kernel_rget_pt);
//*datapt = *(kernel_rget_pt++);
printf("fdfdf\n");
*(datapt) = *kernel_rget_pt; // segementation fault here
printf("*datapt:%c\n",*datapt);//never gets executed
if(kernel_rget_pt == &kernel_rec_buf[4]) kernel_rget_pt =
&kernel_rec_buf[0];
return -1;
}
I call this function from the main as GetFifo(datapt) where datapt is a
char pointer defined in main. I am not sure why I am getting
segmentation fault at *(datapt) = *kernel_rget_pt; I am not able to
copy even one character.
Can anyone point out where I am wrong ?
Thanks,
Priya