#include <stdio.h>
#include <stdlib.h>
int main(){
int rows, col, i, j;
char **mazeArrP;
scanf("%d %d", &rows, &col);
mazeArrP = (char **) malloc(rows*sizeof(char));
for(i = 0; i<rows; i++){
printf("i = %d\n", i);
mazeArrP[i] = (char *) malloc(col*sizeof(char));
for(j = 0; j<col; j++){
printf("j = %d\n", j);
scanf("%c", &mazeArrP[i][j]);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我使用打印来识别我当前在循环中的位置.我正在尝试创建一个简单的2D字符数组,但我的循环行为奇怪.这是我第一次尝试使用双指针来创建2D数组,因此非常感谢该区域的任何帮助.它似乎是0,0然后是0,1然后要求扫描,然后跳到i = 1 j = 0,依此类推.我错过了一些基本的东西吗?
int postOrder(struct node* root, char organ[], char bt[], int* val){
if(root != NULL) {
postOrder(root->left, organ, bt, val);
postOrder(root->right, organ, bt, val);
if(strcmp(root->organ.organname, organ) == 0){
if(strcmp(root->organ.bloodtype, bt) == 0){
if(val == 0){
printf("%s\n", root->organ.name);
val = 1;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正试图在第一次打印后立即终止此递归功能.我的想法最初是传入十进制指针'val'并在我想终止函数时将其设置为1.思考过程是它会改变函数之外的值,所以以前的所有调用都会有更新的指针,但我不认为它在这个设置中是如何工作的.
此函数通过二叉树搜索Post Orderly.