0x000F2DA9 处有未经处理的异常 堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出。

GK7180 2021-08-24 11:49:37

学c语言的小白,跟着视频内容打的,没报错误。

求指导,谢谢!

void Swap(int*q1,int*q2, int width)
{
    int i = 0;
    for (i = 0; i < width; i++)
    {
        int num = *q1;
        *q1 = *q2;
        *q2 = num;
        q1++;
        q2++;
    }
}


void bubble(void*base, int sz, int width,int(* cmp)(const void*e1,const void*e2))
{
    int i = 0;
    int j = 0;
    int num = 0;
    for (i = 0; i < sz - 1; i++)
    {
        for (j = 0; j < sz - i - 1; j++)
        {
            if (cmp((int*)base + j * width, (int*)base + (j + 1)*width) > 0)//比较两个元素
                Swap((int*)base + j * width, (int*)base + (j + 1)*width,width);
                
        }
    }
}

int cmp_cr(const void*e1, const void* e2)
{
    return *(int*)e1 - *(int*)e2;
}

int main()
{
    int i = 0;
    int arr[] = { 6,8,4,2,5,10,12 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    //第一个参数:待排序数组存储元素的地址
    //第二个参数:待排序数组的元素个数
    //第一个参数:待排列数组的元素大小(单位是字节)
    //第一个参数:比较待排列数组元素的大小,参数是两个待比较的元素
    bubble(arr, sz, sizeof(arr[0]), cmp_cr);
    for (i = 0; i < sz; i++)
    {
        printf("%ld ",arr[i]);
    }
    return 0;
}

...全文
518 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
控件
加入

1433

社区成员

VB 控件
社区管理员
  • 控件
申请成为版主
帖子事件
创建了帖子
2021-08-24 11:49
社区公告
暂无公告