【发布时间】:2016-01-17 18:50:49
【问题描述】:
当我尝试使用指针交换这两个整数时,出现分段错误。
基本上在我交换之前,x 被分配给1,y 被分配给2。在我交换后,x 被分配给2,y 被分配给1。
该程序采用两个整数 x 和 y 并且据说是为了交换它们:
int swap(int x, int y){
int *swapXtoY;
int *swapYtoX;
*swapXtoY = y;
*swapYtoX = x;
}
【问题讨论】:
-
int swap(int x, int y)方法接受两个整数,而不是两个指针。尝试关注int swap(int* x, int* y -
*swapXtoY = y;正在使用 未初始化的指针,而此未定义的行为通过将y写入有害或超出允许的内存分配。 -
请注意,您缺少返回;
标签: c