int main(int argc, char* arv[])
{
int m;
printf("How many Rows and Lines?:\n");
scanf("%d", &m);
char board[m][m] ;
int rows, columns;
for(rows = 0; rows < m; rows++)
{
for(columns = 0; columns < m; columns++)
{
char *board = malloc(rows*columns*sizeof(int));
}
}
for(rows = 0; rows < m; rows++)
{
for(columns = 0; columns < m; columns++)
{
printf("%c", board[rows][columns]);
}
printf("\n");
}
}
的問題是,我evreytime得到錯誤的輸出:/ 如果有人能幫助我,這是不錯的,我是新的編程ç二維數組輸入工作,但輸出給其他的東西了
在第一個嵌套循環中,您試圖用'char * board = malloc(rows * columns * sizeof(int));''多次分配內存到同一個變量。無論如何,這是徒勞的,因爲'board'已經被定義爲一個數組,並且在循環之後,相同名字的塊範圍'char * board'變爲無效。 –
除了答案中提到的陰影(和內存泄漏)之外,你還期望輸出什麼?你從不將任何值賦給'board',輸出將成爲垃圾數據。調用任何'scanf()'函數系列時,'malloc'不會將內存初始化爲任何特定值 – yano
,請始終檢查返回值(不是參數值)以確保操作成功。 – user3629249