我正在尝试交换矩阵中的两个值-第一行第二列的值(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;
}