【发布时间】:2021-03-08 06:47:01
【问题描述】:
首先,请注意这是一个更大系统的一部分,这只是隔离一个部分,这就是使用指针的原因。 我假设我试图打印的 powerArgs 回报有问题。虽然我不完全确定出了什么问题
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double* powerArgs(int*, int*);
int main()
{
int parmA, parmB;
int parma, parmb;
printf("Enter 2 integers ");
scanf("%d %d", &parmA, &parmB);
printf("%d raised to the %d power is ",parmA,parmB);
printf("%.0lf \n", *powerArgs(&parmA, &parmB));
}
double* powerArgs(int*a, int*b)
{
int T=*a;
int L=*b;
int t;
t=pow(T,L);
return t;
}
运行后我得到一个错误,上面写着
警告:return 从整数中生成指针而不进行强制转换 [-Wint-conversion]
和
分段错误(核心转储)
这不是所需的打印。
我认为这是返回的参数类型,尽管我可能非常错误。
【问题讨论】:
-
double* powerArgs应该去掉星号。 -
提示:你返回 int 变量并且你返回的类型是 double *。 pow return double ,因此返回类型中不需要星号。
-
你必须返回 double 而不是 int :) 提示:强制转换为 double
-
谢谢你们!
标签: c