PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] 使用双重指标的题目有问题
楼主:
mouwat
(QQ)
2020-09-02 10:47:23
不好意思又来麻烦大家指点
题目是codewar使用双重指标的问题
使用C语言
https://www.codewars.com/kata/534d2f5b5371ecf8d2000a08/train/c
我查询双重指标的使用方法后试着写了却出不来结果
参考内容
写了以下的code
https://ideone.com/sQjKpG
显示结果
之前发生类似的问题通常是宣告范围有问题...
有请写C++朋友帮看一下 但他说不太熟这部分
烦请指点迷津
作者:
Lipraxde
(Lipraxde)
2020-09-02 11:24:00
你看看人家 tmp malloc 写在哪?你写在哪?啊...我看错惹...我看题目的意思应该是要你帮每个 row 都 allocate 一块空间,不过你是 allocate 一整块。所以在它 free memory 的阶段会出错
作者:
sarafciel
(Cattuz)
2020-09-02 12:07:00
因为他test的部分free是每条row分开free的你直接alloc一整块出来就会变成double free
作者:
Lipraxde
(Lipraxde)
2020-09-02 12:29:00
题目的 note 意思就是要你这样 allocate memory。并不是 double free。第一个 row 以外的 rows 指到的是tmp 加一个偏移量的位置,free 的时候由于这些 pointers 不是 allocate 出来的,所以会出现 invalid pointer的错误
作者:
sarafciel
(Cattuz)
2020-09-02 13:11:00
啊对,这个不算double free,感谢指正XD
作者:
loveme00835
(发箍)
2020-09-02 15:06:00
需要加的不是 C 语言malloc()/calloc() 完以后会回传的指标, 而这些指标就是需要给 free() 的引数, 所以呼叫次数先要对得上才行, 这是大原则.
作者:
Lipraxde
(Lipraxde)
2020-09-02 17:56:00
你可以自己写几只程式后用 valgrind 跑,valgrind 会告诉哪边对内存的操作有问题
作者:
loveme00835
(发箍)
2020-09-03 05:37:00
为什么你在呼叫函式以前不先看它的说明, 而是靠别人写的程式码来猜用途?
作者: reemir
2020-09-22 10:06:00
什么叫做双重指标?有这种东西吗?
继续阅读
[问题] 透过copy elision 来return by value
lovejomi
[问题] server socket 缓冲 相关问题
applejuice64
[问题] 新购电脑WIN10 初次执行C语言 无法编译
cgadpp
[问题] 请教 C/C++ 程式方面的问题...++*p...
Joeng
addresssanitizer heap-buffer-overflow 错误
hydebeast
[问题] header的小问题
joshddd
[问题] 制作training data 问题
magic83v
[问题] 关于类型转换
asdfg1597860
[问题] opencv 学习
spong
[问题] 一般变量与const变量 在表头档问题
anoymouse
Links
booklink
Contact Us: admin [ a t ] ucptt.com