C++分段错误

Jac*_*k H 3 c++ segmentation-fault

我已经阅读了有关分段错误的内容,但未能理解为什么应该由以下代码引起.

#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;
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ani 8

sizeof给你大小的字节数.要查找元素计数,请将数组大小(以字节为单位)除以元素的大小:

for(int i=0; i < sizeof(A) / sizeof(A[0]); i++)
Run Code Online (Sandbox Code Playgroud)

你正在做的事情是在整个过程中写入3次(在大多数系统上)数组的大小,这会导致段错误.