引发了异常: 写入访问权限冲突。!!求指教

livewk 2017-07-05 10:14:36
...全文
1712 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Meilinger_ 2017-12-14
  • 打赏
  • 举报
回复
#include<stdio.h> #include<stdlib.h> #include"iostream" using namespace std; #define MAX_NUM_OF_KEY 8 //关键字项数的最大值 #define RADIX 10 //关键字基数,此时是十进制整数的基数 #define MAX_SPACE 10000 typedef struct { int keys[MAX_NUM_OF_KEY]; //关键字 signed int next; }SLCell; //静态链表的结点类型 typedef struct { SLCell r[MAX_SPACE]; //静态链表可利用空间,r[0]为头结点 int keynum; //计录当前的关键字个数 int recnum; //静态链表的当前长度 }SLList; //静态链表类型 typedef int ArrType[RADIX]; //指针数组类型 void Distribute(SLCell *r, int i, ArrType &f, ArrType &e) { //静态链表L的r域中记录已按(keys[0],...keys[i-1])有序. //本算法按第i个关键字keys[i]建立RADIX个子表,使同一子表中keys[i]相同 //f[0...RADIX-1]和e[0...RADIX-1]分别指向各子表中第一个和最后一个记录 int j; for (j = 0; j < RADIX; j++) f[j] = 0; //各子表初始化为空表 for (j = 0; j < RADIX; j++) e[j] = -1; for (int p = r[0].next; p; p = r[p].next) { j = r[p].keys[i]; //将记录中第i个关键字映射到[0...RADIX-1] if (!f[j]) f[j] = p; else r[e[j]].next = p; e[j] = p; } }//Distribute void Collect(SLCell *r, int i, ArrType &f, ArrType &e) { //按keys[i]自小到大地将f[0...RADIX-1]所指各子表依次链接成一个链表 //e[0...RADIX-1]为各子表的尾指针 int j, t; for (j = 0; !f[j]; j++); //找第一个非空子表 r[0].next = f[j]; //r[0].next指向第一个非空子表中第一个结点 t = e[j]; while (j < RADIX) { for (j = j + 1; j < RADIX - 1 && !f[j]; j++); //找下一个非空子表 if (f[j]) { //链接两个非空子表 r[t].next = f[j]; t = e[j]; } } r[t].next = 0; //t指向最后一个非空子表中最后一个结点 }//Collect void Create_SLL(SLList &L) { int n; printf("请输入要排序整数列长度: "); cin >> L.recnum; printf("请输入要排序整数列关键字个数: "); cin >> L.keynum; printf("请依次输入所要排序整数: "); for (int i = 1; i <= L.recnum; i++) { cin >> n; for (int j = 0; j < L.keynum; j++) { L.r[i].keys[L.keynum - j - 1] = n % 10; n /= 10; } } } void RadixSort(SLList &L) { //L是采用静态链表表示的顺序表 //对L做基数排序,使得L成为按关键字自小到大的有序静态链表,L.r[0]为头结点 ArrType f[RADIX], e[RADIX]; for (int i = 0; i < L.recnum; i++) L.r[i].next = i + 1; L.r[L.recnum].next = 0; //将L改造为静态链表 for (int i = L.keynum - 1; i >= 0; i--) { //按最低位优先依次对各关键字进行分配和收集 Distribute(L.r, i, *f, *e); //第i趟分配 Collect(L.r, i, *f, *e); //第i趟收集 } } int main() { SLList L; Create_SLL(L); RadixSort(L); cout << "基数排序所得序列为: \n"; for (int i = 1; i <= L.recnum; i++) cout << L.r[i].keys << " "; printf("\n"); return 0; } 大家可以帮我看一下这个程序吗?不懂为什么同样的错误
赵4老师 2017-07-06
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
真相重于对错 2017-07-06
  • 打赏
  • 举报
回复
学会 调试程序
窗外蓝天 2017-07-06
  • 打赏
  • 举报
回复
看一下pUser是不是有效的咯
livewk 2017-07-05
  • 打赏
  • 举报
回复
CUser m_user; CUser *getUser() { return &m_user; } 在其他类调用都没事 //获取主框架类指针 CMainFrame *pMF = (CMainFrame *)AfxGetMainWnd(); //获取文档类指针 CHaiXuHX_10Doc *pDOC = (CHaiXuHX_10Doc *)pMF->GetActiveDocument(); //获取数据集 CUserSet *pUS = pDOC->getUserSet(); if ((pUS->IsOpen()) == false) { pUS->Open(); } //获取用户数据集 CUser *pUser= pDOC->getUser(); pUser->setUser(m_uiUserLogin,m_uiUserPass); pUser->setUserSet(pUS);
Really_want 2017-07-05
  • 打赏
  • 举报
回复
0x5D0,十进制1488,看上去不是一个指针的值,更像是一个普通的数字。要不要看一下getUser()函数的实现?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧