【发布时间】:2011-11-08 01:13:58
【问题描述】:
我正在尝试在 C 中学习数组和指针。我正在尝试在函数中编写一个程序:从用户那里获取 2 个数字,将它们放入一个数组中,然后将它们返回给主函数。我收到一个错误,我不明白问题出在哪里。这是我的代码:
#include<stdio.h>
void get_nums(float *x)
{
float num1, num2;
printf("enter two numbers: ");
scanf("%f %f", &num1, &num2);
*x[0] = num1;
*x[1] = num2;
}
main(){
float x[2];
float (*p_x)[2] = &x;
get_nums(p_x[2]);
printf("Number 1: %f\nNumber 2: %f", x[0], x[1]);
return 0;
}
这两行出现错误
*x[0] = num1;
*x[1] = num2;
错误信息是
错误:'*' 的操作数必须是指针
我看不出有什么问题。有人看到问题了吗?
编辑:我将 2 行更改为
x[0] = num1;
x[1] = num2;
现在我可以运行程序了。但是,输入两个数字后出现新错误。错误信息是:
Unhandled exception at 0x40e00000 in arraysandpointers.exe: 0xC0000005: Access violation.
【问题讨论】:
标签: c arrays function pointers