我想用下一個代碼解決的問題是將某個大小的整數數組旋轉到某個數字。 例如,對於C++指針:數組的堆棧已損壞
int a[5] = {1,2,3,4,5}
其中size =5
,爲shift = 2
結果必然是
{3,4,5,1,2}
這是我的功能
void rotate(int a[], int size, int shift)
{
for (int i = 0; i < shift%size; ++i) {
int *buffer = &a[0];
a = &a[1];
int l = *buffer;
a[size - 1] = l;
}
}
的輸出是正確的,但有一個運行時異常
Stack around the variable 'a' was corrupted
的問題絕對是
a[size - 1] = l;
,但我不明白,究竟是什麼錯。
在此先感謝您的幫助。
就這麼你知道,這已經存在了:'std :: rotate' – chris