我想從用戶採取2維char數據,但它沒有正確地從用戶輸入。你可以突出顯示以下代碼中的錯誤嗎?這個2維char數組的char輸入有什麼問題?爲什麼它不採取總計K * K輸入?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i, j, k;
char **ch;
printf("\nEnter k : ");
scanf("%d",&k);
ch = (char **) malloc (sizeof(char*) * k);
if(ch == NULL) { printf("\n Not enough memory for ch array "); exit(0);}
for(i = 0; i < k; i++) {
ch[i] = (char *) malloc (sizeof(char) * k);
if(ch[i] == NULL) { printf("\n Not enough memory for ch array "); exit(0);}
}
printf("\nenter char matrix (%d X %d)\n", k,k);
for(i = 0; i < k; i++) {
for(j = 0; j < k; j++) {
scanf("%c", (*(ch + i) + j));
}
}
printf("\n char matrix : \n");
for(i = 0; i < k; i++) {
for(j = 0; j < k; j++) {
printf("%c ",*(*(ch + i) + j));
}
printf("\n");
}
for(i = 0; i < k; i++) free(*(ch + i));
free(ch);
return 0;
}
我試圖通過int
更換char
。它對整數工作正常。
char
從stdin
讀什麼錯?
「請突出顯示以下代碼中的錯誤」 - 您認爲本網站是一個免費的調試服務?學習自己使用調試器! –
什麼是輸入?什麼是預期的輸出?實際產出是多少? –