各位看看,这个栈溢出问题如何解决!!


#include
void rotate(int* nums, int size, int k);
int main() {

    int nums[101]; int k = 3;
    int n = 0; scanf("%d", &n);
    printf("需要输入%d个数组元素\n",n);
    for (int i = 0; i < n; i++)
        scanf("%d", &nums[i]);

    rotate(nums, n, k);
    printf("\n旋转后数组为:\n");
    for (int i = 0; i < n; i++)
        printf("%d ", nums[i]);
    return 0;
}
void rotate(int* nums, int size, int k)
{
    k %= size;
    int* arr = (int*)malloc(sizeof(int) *size);
    int count = 0;
    for (int i = size - k; i < size; i++)
    {
        arr[count] = nums[i];//先把需要颠倒的先拷贝到新数组
        count++;
    }
    for (int j = 0; j //把后需要颠倒的拷贝到新数组
        count++;
    }
    for (int k = 0; k < size; k++)
    {
        nums[k] = arr[k];
    }
}

img


虽程序能正常运行并且得到正确结果,但怎么解决怎么溢出的警告!各位看如何解决!

void rotate(int* nums, int size, int k)
调试下,size传进来是多少

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^