读书人

关于上标运算符和用指针加偏移量访问的

发布时间: 2012-09-10 11:02:32 作者: rapoo

关于下标运算符和用指针加偏移量访问的区别
RT,部分代码如下所示:

C/C++ code
         //analysis the shstrtab offset in the file    ioffset = shdr[phead->e_shstrndx].sh_offset;    isize = shdr[phead->e_shstrndx].sh_size;        pshstr = (char*)malloc(sizeof(char)*isize);    //read the shstrtable from file         if( 0 != fseek(p,ioffset,SEEK_SET) )    {        printf("move the offset for shstrtab failed!\n");    }    iRet = fread(pshstr,isize,1,p);    if( 1 != iRet )    {        printf("read the shstrtab from file failed!\n");    }     printf("The Section of Elf file: %d\n",phead->e_shnum );    printf("Index    Name    size    offset \n");    for( i = 1; i< phead->e_shnum ; ++i )    {        printf("%d    ", i);        printf("%s    ",pshstr+shdr[i].sh_name );//使用下标pshstr[shdr[i].sh_name]就会出现段错误        printf("%d    ",shdr[i].sh_size);        printf("%d    ",shdr[i].sh_offset);        printf("\n");        }

求大牛给小弟一点提示。

[解决办法]
printf("%s ",pshstr+shdr[i].sh_name );//使用下标pshstr[shdr[i].sh_name]就会出现段错误
printf("%s ",&pshstr[shdr[i].sh_name] );//使用下标pshstr[shdr[i].sh_name]就会出现段错误

读书人网 >C语言

热点推荐