มีปัญหาภาษาCนะคับ

คราวที่แล้วขอบคุณ คุณ zkaru ด้วยคับผ่านแล้วคับ

ที่นี้ผมลองทำเป็นแบบ2มิตินะคับ งงตรงที่ว่า พอให้เป็น int มันก็ผ่านปรกติ แต่พอเป็น char ติดตรง loop free อีกแล้ว - -*
ลองไล่ๆเองดูก็ไม่ถูกซักที - -*

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int i=0,j=0;

//int{i}{j}
int ***bug110=NULL;

    bug110=(int ***)malloc(sizeof(int*)*4*5);
    printf("&bug110=%d \n",(long)&bug110);
    printf("bug110=%d \n",(long)bug110);
    for (i=0;i<4;i++)
    {
        bug110{i}=(int **)malloc(sizeof(int)*4*5);
        printf("&bug110{%d}=%d \n",i,(long)&bug110{i});
        printf("bug110{%d}=%d \n",i,(long)bug110{i});

        for(j=0;j<5;j++)
        {
            bug110{i}{j}=(int *)malloc(sizeof(int)*4*5);
            *(bug110{i}{j})=(i*5)+j;
            printf("&bug110{%d}{%d}=%d \n",i,j,(long)&bug110{i}{j});
            printf("bug110{%d}{%d}=%d \n",i,j,(long)bug110{i}{j});
            printf("*(bug110{%d}{%d})=%d \n\n",i,j,*(bug110{i}{j}));
        }    
    }
    printf("free \n");
    for(i=0;i<4;i++)
    {
        printf("{%d}\n",i);
        for(j=0;j<5;j++)
        {
            printf("{%d}{%d}\n",i,j);
            free(bug110{i}{j});
            bug110{i}{j}=NULL;
        }
        free(bug110{i});
        bug110{i}=NULL;
    }
    free(bug110);
    bug110=NULL;
    printf("-------------------------------\n");


//char{i}{j}
char ***b100=NULL;
    b100=(char ***)malloc(sizeof(char*)*4*5);
    printf("&b100=%d \n",(long)&b100);
    printf("b100=%d \n",(long)b100);

    for (i=0;i<4;i++)
    {
        b100{i}=(char **)malloc(sizeof(char)*4*5);
        printf("&b100{%d}=%d \n",i,(long)&b100);
        printf("b100{%d}=%d \n",i,(long)b100);
        
        for(j=0;j<5;j++)
        {
            b100{i}{j}=(char *)malloc(sizeof(char)*4*5);

            if(j+1==5)
            {
                *(b100{i}{j})='\0';
            }
            else
            {
                *(b100{i}{j})=97+(i*5)+j;
            }
            printf("&b100{%d}{%d}=%d \n",i,j,(long)&b100{i}{j});
            printf("b100{%d}{%d}=%d \n",i,j,(long)b100{i}{j});
            printf("*(b100{%d}{%d})=%c \n\n",i,j,*(b100{i}{j}));    
        }
    }
    printf("free\n");
    for(i=0;i<4;i++)
    {
        printf("{%d}\n",i);
        for(j=0;j<5;j++)
        {
            printf("{%d}{%d}\n",i,j);
            free(b100{i}{j});
            b100=NULL;
        }
        free(b100{i});
        b100{i}=NULL;
    }
    free(b100);
    b100=NULL;
    printf("-------------------------------\n");
return(0);
}

ปล.ขอขอบคุณทุกท่านที่มาช่วยตอบนะคับ _/\_
แก้ไขข้อความเมื่อ

แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่