我对此进行了很多搜索,但未找到满意的答复。我正在编写一个小的数学算法,以学习一些编程语言,因此,这是我第一个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}
答案 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
循环超出了范围。