我想学习如何在c ++中使用RAII.我想我知道它是什么,但不知道如何在我的程序中实现它.快速谷歌搜索没有显示任何好的教程.
有没有人有任何好的链接教我RAII?
有没有办法在OCamlLex中返回多个令牌?
我正在尝试为基于缩进的语言编写词法分析器和解析器,并且当我DEDENT注意到缩进级别比以前更小时,我希望我的词法分析器返回多个标记.这将允许它在多个块结束时通知解析器.
按照此方法,我将能够使用INDENT并DEDENT作为插入式替代BEGIN和END,因为这两个标记将被暗示INDENT和DEDENT令牌.
为什么下面的代码给我一个分段错误?
#define MAXROWS 10
#define MAXCOLS 10
void getInput (int *data[MAXROWS][MAXCOLS]) {
int rows, cols;
int curRow, curCol;
printf ("How many rows and cols?");
scanf ("%d %d", rows, cols);
for (curRow = 0; curRow < rows; curRow++) {
for (curCol = 0; curCol < cols; curCol++) {
scanf ("%d", data[curRow][curCol]);
printf ("%d\n", *data[curRow][curCol]);
}
}
}
void main () {
int data[MAXROWS][MAXCOLS];
getInput (data);
}
Run Code Online (Sandbox Code Playgroud)
似乎scanfandprintf语句没有得到正确的数据类型传入,但我无法弄清楚它们应该是什么。
如何更改它以使其正常工作?