我的问题是我们可以使用"showusername"
初始化二维数组。
根据initialize-large-two-dimensional-array-in-c中的最佳答案,
const initialState = { username: '', password: '', submit: false, //request: 'self', showselectfield: false }; export default function showUsername(state = initialState, action) { switch (action.type) { case "showusername": return ( Object.assign({},state ,{username:action.username,password:action.password}) ); default: return state } }
这意味着:“将第一行中的第一列初始化为0,将所有其他项初始化为具有静态存储持续时间,即将它们设置为零。”
但是,检查int a[10][10] = {{0}}
和int array [ROW][COLUMN] = {0};
,我没有找到支持此答案中提到的内容的任何官方记录。
此外,当我尝试使用以下解决方案解决C99 Standard 9899:TC3
问题时,我确实遇到过这个问题。
C++11 Standard N4296
答案 0 :(得分:4)
您的代码是C ++代码。关于C的其他问题和文件无关紧要; C和C ++是不同的语言。
在标准C ++中,必须在编译时知道数组维。 int dp[m + 1][n + 1]
是一个错误(更不用说尝试初始化它了。)
可能您正在使用提供C ++ VLA作为非标准扩展的编译器。在这种情况下,您将受到特定编译器的支配,即代码的行为将是什么,以及={{0}}
在其上的行为可能是什么。 C ++标准无济于事。
我的建议是避免使用非标准结构,以便保留标准文件提供的保证。