我读过有关段错误的信息,但不明白为什么应该由以下代码引起。
#include<iostream>
#include <stdlib.h>
using namespace std;
int main(){
int input;
cout << "Enter length of desired array." << "\n";
cin >> input;
int A [input];
//Populate and print the Array.
for(int i=0; i<sizeof(A); i++){
A[i] = rand()%99;
cout << A[i] << " ";
}
return 0;
}
最佳答案
sizeof
以字节为单位提供大小。要查找元素计数,请将数组大小(以字节为单位)除以元素的大小:
for(int i=0; i < sizeof(A) / sizeof(A[0]); i++)
你所做的本质上是在末尾写入数组大小的 3 倍(在大多数系统上),这会导致段错误。
关于C++ 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205244/