我想用n + 1个元素初始化一个数组,并为第一个元素赋值,所以:
#include <iostream>
using namespace std;
double arry(int n,double s0);
int main()
{
arry(10,24.543);
return 0;
}
double arry(int n,double s0){
double s[n+1]={};
s[0]=s0;
for(int i=0;i<11;i++){
cout<<i<<"="<<s[i]<<endl;
}
}
似乎是对的,但是当我运行它时,我在第13行收到错误消息如下:
错误:可能无法初始化变量大小的对象
有人可以解决吗?非常感谢。
答案 0 :(得分:0)
double s[n+1]={};
C ++中不允许使用 s[n+1]
。您应该使用编译时常量。比如,s[10];
或,
#define INDEX 10
double s[INDEX + 1]={};
答案 1 :(得分:0)
使用此代码
#include <iostream>
#include <stdlib.h>
using namespace std;
void arry(int n,double s0);
int main()
{
arry(10,24.543);
}
void arry(int n,double s0){
double *s;
s = new double[n + 1];
s[0]=s0;
for(int i=0;i<11;i++){
cout<<i<<"="<<s[i]<<endl;
}
}
答案 2 :(得分:-1)
必须使用malloc函数动态分配内存
#include <iostream>
#include <stdlib.h>
using namespace std;
double arry(int n,double s0);
int main()
{
arry(10,24.543);
return 0;
}
double arry(int n,double s0){
double* s = (double*)malloc( sizeof(double) * (n + 1) ) ;
s[0]=s0;
for(int i=0;i<11;i++){
cout<<i<<"="<<s[i]<<endl;
}
}