gpt4 book ai didi

堆栈粉碎的原因在 C 中检测到错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:23 28 4
gpt4 key购买 nike

代码如下:用于在给定直角(与直角相邻的边)之一时计算直角三角形的其他两条边。

(我是C语言初学者)

int* pythagoreanTriple(int a, int *result_size){
// Complete this function

result_size[0]=a;
int sqa=a*a;
if(sqa%2)
{result_size[1]=(sqa-1)/2;
result_size[2]=result_size[1]++;
}
else{
int m=a/2;
result_size[2]=m*m+1;
result_size[1]=m*m-1;
}
return result_size;
}

int main() {
int a;
scanf("%d", &a);
int result_size;

int* triple = pythagoreanTriple(a, &result_size);
for(int triple_i = 0; triple_i < 3; triple_i++) {
if(triple_i) {
printf(" ");
}
printf("%d", triple[triple_i]);
}
puts("");
return 0;
}

最佳答案

main 函数中,变量 result_size 是单个 int。您将指向该变量的指针传递给 pythagoreanTriple 函数,在该函数中您将其视为包含三个元素的数组。指针可以被视为一个数组,但只有一个单个元素,它表示main 函数中的变量。

如果它应该是一个树元素数组,那么就这样定义它。

关于堆栈粉碎的原因在 C 中检测到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44474256/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com