首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-09-10 
关于下标运算符和用指针加偏移量访问的区别RT,部分代码如下所示:C/C++ code//analysis the shstrtab offse

关于下标运算符和用指针加偏移量访问的区别
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]就会出现段错误

热点排行
Bad Request.