如何在指针数组中存储“迷宫”信息,其中数组的每个元素都指向一个包含一行迷宫

问题描述 投票:0回答:0
#include <stdio.h>
#include <stdlib.h>
int main(){
    char **lab;
    char c;
    int x,y,i=0,j=0,columnnumber=0,rownumber=1,check=1;
    scanf("%d %d",&x,&y); 
    lab = (char**)malloc(sizeof(char*)*rownumber);
    lab[0] = (char*)malloc(sizeof(char)*1000);
    while(check){
        scanf("%c",&c);
        if(c=='\n'){
            check = 0;
        }
        else{
            lab[0][columnnumber] = c;
            columnnumber++;
        }
    }
    lab[0] = realloc(lab[0],(columnnumber+1)*sizeof(char));
    rownumber = 2;
    lab = (char**)realloc(lab,rownumber*sizeof(char*));
    lab[1] = (char*)malloc(sizeof(char)*(columnnumber+1));
    check = 1;
    while(check){
        scanf("%c",&c);
        if(c=='\n'){
            rownumber++;
            lab = realloc(lab,rownumber*sizeof(char*));
            lab[rownumber-1] = (char*)malloc(sizeof(char)*(columnnumber+1));
            j = 0;
        }
        else if(c == EOF){
            check = 0;
        }
        else{
            lab[rownumber-1][j] = c;
            j++;
        }
    }
}

迷宫(有' ' 在每行的末尾和 EOF 在末尾):

XXXXXXXXXXXXXXXXXXXXX XXXX
X XXXX          X XX  XXXX
X      X XXXXXX   XX    XX
X XXXXXX   XXXXXXXXX XX XX
X XX   XXXX X     XX X  XX
X XX X  XXX XX XXXXX XX XX
X X  XX   X    X        XX
X X   XXX XXX XXXXXX XXXXX
X XX   XX     X   XX XX XX
X XX     XXXX X X XX XX XX
X XX XX  XX   XXX XX    XX
X XX  X XXX       XX  X XX
X XX    XXX XXXXXXXXX   XX
X XXXX   XX           XXXX
XXXXXXXXXXXXXXXXXXXXXXXXXX

我应该接受输入,我们称之为迷宫,并将这个迷宫信息存储在一个二维指针数组中,正如我在标题中所说的那样。我怎样才能做到这一点?我是动态分配和 C 编程的新手。只要不超过 100k 个单元格,行数和列数就可以变化。

有' ' 在每行的末尾和 EOF 在末尾(迷宫在上面)。

c algorithm dynamic-programming
© www.soinside.com 2019 - 2024. All rights reserved.