c-用指针交换2D数组元素时出现分段错误



我正在尝试交换矩阵中的两个值-第一行第二列的值(5(和第四行第三列的值(2(。

编译后,当我尝试分配*temp的值时,由于分段错误,程序终止。我把代码附在下面。

void swap(float *y)
{
float *temp;
*temp=*(y+1);
*(y+1)=*(y+11);
*(y+11)=*temp;
}
void main()
{
float a[5][3]={{7,5,4},{2,7,4},{7,5,2},{8,4,2},{9,5,2}}, *aptr=&a[0][0];
swap(aptr);
}

我很抱歉我的代码中有任何明显的错误,我是C的新手,我正在努力理解指针的概念。

指针临时未初始化。因此,取消引用指针会导致未定义的行为。

相反,您需要使用float类型的对象。

void swap(float *y)
{
float temp;
temp=*(y+1);
*(y+1)=*(y+11);
*(y+11)=temp;
}

相关内容

  • 没有找到相关文章

最新更新