在机器编程上无法将双倍转换为双倍(高斯消除)项目

时间:2016-07-30 20:35:32

标签: c arrays function

嘿伙计这是我在这里发表的第一篇文章

这是我正在努力的事情的一小部分

删除机器中的高斯错误

代码发出错误 比如user.dropbox.com

非常感谢任何形式的帮助

function shareOnFacebook(link,title,caption,img){

FB.ui(
{
    method: 'feed',
    display: 'popup',
    title: title,
    link: link,
    picture: img,
    caption: 'Ceria8',
    description: caption,
},
    function (response) {
        if (response && response.post_id) {
            alert(response.post_id);
            console.log( response );
        } else {
            alert('Sharing cancelled');
        }
);
}

1 个答案:

答案 0 :(得分:1)

我没有得到你所做的编译器错误,但你有未定义的行为。

solve中,soln是其堆栈框架的一部分,因此当它返回p时将指向“稀薄的空气”。也就是说,可以立即覆盖堆栈帧,从而覆盖soln

解决此问题的简便方法是将solve重新定义为:

void solve(double *soln,double A[16][17], int n)

然后solve

中删除堆栈帧定义
double soln[16]

此外,不需要p

然后,从主叫:

调用它
solve(soln,GE,n);

现在,solve会将其数据返回main的{​​{1}}

另外,请注意在soln中设置p点超过数组的末尾(再次,UB),但我没有解决这个问题,因为函数返回并未真正使用。

这是一个编译并运行的版本:

uptri