【问题标题】:Non portale pointer conversion非便携式指针转换
【发布时间】:2014-02-17 14:50:49
【问题描述】:
#include<stdio.h>
#include<conio.h>
void change(int *);
int main()
{
 int a[5] = {1,2,3,4,5};
 int i;
 clrscr();
 change(a);
 for(i=4;i>=0;i--)
    {
    printf("%d\n",a[i]);
    }
 getch();
 return 0;
}
void change(int *b)
{
 int i;
 for(i=0;i<=4;i++)
 {
  b=*b+1; //showing nonportable pointer exception
  b++;
 }
}

输出不符合预期,没有错误和 1 个警告....
预期输出:65432 当前输出:54321

【问题讨论】:

  • 也许如果你真的阅读试图修复警告...b = *b + 1应该是*b = *b + 1或者只是@987654324 @.

标签: c arrays exception pointers warnings


【解决方案1】:

bint * 类型,而 *b + 1int 类型。您正在将 int 类型分配给指针类型。改变

 b=*b+1;   

*b = *b+1; 

【讨论】:

  • 我感觉人们永远不会知道警告应该被视为硬错误......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
  • 2015-01-02
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2014-09-12
相关资源
最近更新 更多