簡體   English   中英

打印二維數組時的無限循環

[英]infinite loop on printing 2D array

#include <stdio.h>


void main()
{
    char plaintext[50];
    char key[20];
    int plain=0,max1=0,max2=0; // max2 amount of coloumn n max1 for row on chip
    char chip[30][30];
    int i,j,k=0,c=0;

    printf("Enter key :");
    scanf("%s",&key);

    for(i=0;key[i]!='\0';i++)
    {
        max2++; 
    }

    printf("Enter plaintext :");
    scanf("%s",&plaintext);

    for( i = 0; plaintext[i] != '\0'; i++ ) 
    {
        plain++; 
    }
    if (plain%max2==0)
    max1=plain/max2;
    else
    max1=plain/max2+1;
    while(plaintext[k]!='\0')
    {

        for (i=0;i<max1;i++)
        {
            for (j=0;j<max2;j++)
            {
            chip[i][j]=plaintext[k];
            k++;
            }
        }
    }
    printf("%s",chip[0][0]);
}

我第一次嘗試將普通(1D陣列)上的字符串移動到帶有2D動態數組的芯片(2d陣列)中,但是當我嘗試運行此代碼時,它什么也沒有停止工作.. 2D陣列有什么問題嗎?

我在Linux上編譯了它(省略了空格,因為在Linux中main必須返回一個值),然后出現了“段錯誤”。 我想這是因為printf("%s",chip[0][0]); ,應為printf("%s",chip[0]);

我的意思是chip [0] [0]在chip [0]中返回一個特定字符,您想打印芯片數組中的第一個字符串,對嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM