void swap (int *px, int *py) {
int temp;
temp = *px;
*px = *py;
*py = temp;
}
これで 2 つの変数が交換されますが、これは問題ないように見えます。
今私がそれを
void swap (int *px, int *py) {
int *temp;
*temp = *px;
*px = *py;
*py = *temp;
}
注意 int *temp
とにかくこれは機能しますが、 temp は初期化されずに逆参照されます。
これが機能しない値は何ですか?
たとえば、proc というメソッドを作成したい場合、どうすればプログラムがクラッシュすることを保証できますか? スタックに何かを残すことになっていると思います。
int main () {
int a = 1, b = 2;
proc(/* Some args might go here */);
swap(&a, &b);
}