C ++初始化数组的最后一个值是随机的

时间:2018-12-18 21:29:12

标签: c++ arrays random initialization

我对此进行了很多搜索,但未找到满意的答复。我正在编写一个小的数学算法,以学习一些编程语言,因此,这是我第一个C ++程序的一部分。但是,我似乎无法修复此数组。尽管人们说数组中的随机值是由于数组未初始化,所以您应该将它们初始化为所需的值,例如:import React, { Component } from 'react' import Button from '@material-ui/core/Button' class AddToHomeScreen extends Component { constructor (props) { super(props) this.deferredPrompt = null this.state = { show: false } } componentDidMount () { var component = this window.addEventListener('beforeinstallprompt', e => { // Prevent Chrome 67 and earlier from automatically showing the prompt e.preventDefault() // Stash the event so it can be triggered later. component.deferredPrompt = e // Show button console.log('beforeinstallprompt triggered... show add button') component.setState({ show: true }) }) } // bind to this handleAddClick () { if (this.deferredPrompt) { this.setState({ show: false }) // Show the prompt this.deferredPrompt.prompt() // Wait for the user to respond to the prompt this.deferredPrompt.userChoice.then(choiceResult => { if (choiceResult.outcome === 'accepted') { console.log('User accepted the A2HS prompt') } else { console.log('User dismissed the A2HS prompt') } this.deferredPrompt = null }) } else { console.log('Invalid prompt object') } } render () { const { show } = this.state if (!show) return null return ( <div className={classes.root}> <Button variant="contained" onClick={this.handleAddClick.bind(this)}> Add to home screen </Button> </div> ) } } export default AddToHomeScreen ,但在本示例中,它只能起到某种作用。如您所见,在数组的所有值都设置为0,最后一个值似乎没有初始化:是什么原因引起的,我该如何解决?

int array[sizeOf] = {0}

1 个答案:

答案 0 :(得分:2)

数组基于0。意思是,在for循环for (int x = 0; x <= arraySize; x++)中,部分x <= arraySize应该是x < arraySize

示例:

如果您声明数组大小为10,则有效的数组索引为0,1,2,3,4,5,6,7,8,9(总共10个索引)。

如果将其与for放在x <= 10循环中,则最后一个索引将为array[10](未定义/未初始化)。

简而言之,您的初始化是正确的,只是您的for循环超出了范围。