我正在做类作业,我想我会问大家一个问题:
所以程序的目的是让用户输入数组的大小,然后用一些数据初始化它。最大大小为 20。我的问题是,当设置大小超过 14 并尝试初始化它时,数组会崩溃。因此,例如,如果它将大小设置为 20,它会接受它,但是当我尝试初始化它时,它会崩溃。我不知道我在做什么。非常感谢您的帮助。
非常感谢,
埃西
int main ()
{
int sizeOfArray = 0; //size Of Array
float myArray[sizeOfArray];
//I have a piece a line or two of code that asks the user for the size of the
array
printf("Let's Initialize an array of size %d!!\n", sizeOfArray);
do
{
printf("Enter array element %d : ", initCounter+1);
myArray[initCounter] = userInitArray();
initCounter++;
}while (initCounter < sizeOfArray);
}
float userInitArray()
{
float num;
scanf("%f", &num);
return num;
}
最佳答案
这两行
int sizeOfArray = 0; //size Of Array
float myArray[sizeOfArray];
创建一个空数组。因此,无论您稍后尝试在此数组中存储什么,都会越界访问并调用未定义的行为。您的程序在第 14 次调用时崩溃的事实只是运气。它也可能在第一个上崩溃。
关于c - 使用 C 中的函数初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057493/