我写了一个小函数来返回一个由给定程序输入的字符串,它工作正常,直到我交换常量大小的动态内存分配。
在我用一些printf()测试之后看起来程序崩溃了当调用realloc()时。
我在使用realloc()做错了什么,还是其他什么?
hasPekingese()
谢谢你的帮助。
答案 0 :(得分:4)
当您致电realloc
时,您必须为其分配内存开头的地址,该地址与malloc
最初返回的地址相同。 free
也是如此。
但是您正在修改line
的值,因此在调用realloc
时它不再指向块的开头。
这是未定义的行为,因此绝对可以使用段错误。