我的代码的原因是什么?未处理的异常
调试源代码: http://www.cppblog.com/Files /mymsdn/cvector-bug-vs2008-201007101651.zip
大家好,我已经修复了我的代码,谢谢你们的帮助!您可以下载我的代码的正确版本。
src: http://www.cppblog.com/Files/mymsdn/ cvector-vs2008-20100710.rar
我正在尝试编写一个C语言版本的向量。我使用void ** a
pRoot 表示指针向量。我想保持 void ** p 可用,而不是 malloc 内存。
像这样:cvector_ptr_ptr = &cvector_ptr;
我将cvector_ptr_ptr
传递给每个函数来处理它。
在我的代码中,我遇到了未处理的异常。我想我已经读完了。但在函数 "insert"
中,我可以使用 (*cvector_ptr_ptr)->element_size
来获取大小值。我将 cvector_ptr_ptr
传递给函数 "insert_copy"
我无法使用相同的代码 [(*cvector_ptr_ptr)->element_size]
来获取值。
我怎么了?
debug src: http://www.cppblog.com/Files/mymsdn/cvector-bug-vs2008-201007101651.zip
Hey all, I have repair my code, thanks yours help! You can download the correct version of my code.
src: http://www.cppblog.com/Files/mymsdn/cvector-vs2008-20100710.rar
I am trying to write a C language version of vector. I use the void ** a
the pRoot indicate the pointer vector. I want to keep the void ** p available, than I malloc a memory.
like this :cvector_ptr_ptr = &cvector_ptr;
I pass the cvector_ptr_ptr
to each function to deal with it.
In my code, I encounter a unhandled exception. I think I have read overrun. But in the function "insert"
, I can use (*cvector_ptr_ptr)->element_size
to get the size value. I pass the cvector_ptr_ptr
to the function "insert_copy"
I can't use the same code [(*cvector_ptr_ptr)->element_size]
to get the value.
What's wrong with me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题出在你的“create_vector_n”函数中:
你正在返回一个指向堆栈变量(cvector_ptr)的指针,这是非常错误的。
The problem is in your "create_vector_n" function, there:
You are returning a pointer to a stack variable (cvector_ptr), which is terribly wrong.
我认为您的代码有很多问题,一个非常明显的问题是
您添加的第一个元素应该写入偏移量零,而不是
element_size
。I think your code has many problems, one problem that is really evident is
The first element you add should be written to offset zero, not
element_size
.