Follow

请尽可能一眼看出这段代码有什么问题:

void swap(png_bytep x, png_bytep y)
{
    png_bytep i;

    *i = *x;
    *x = *y;
    *y = *i;
}
· · Web · 3 · 0 · 0
*** stack smashing detected ***: terminated
已放弃(核心已转储)

@liolok i 这个指针没有初始化就用来写入了,是野指针
正确写法是 i 应该不是指针,类型改成 png_byte,后面交换那里 *i 改成 i。

@literalkernel 没有对象的东西甚至都没有与同类交互的资格(乐)

@Potato_Rf :bili_emoji_xiaoku: 不太懂,我能不能理解成 i 没有正确的指向一个对象
这个就是简单的无效指针的问题,不用提那个没有的对象。。。

Sign in to participate in the conversation
小森林

每个人都有属于自己的一片森林,也许我们从来不曾走过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。愿这里,成为属于你的小森林。