From: Zsolnai Csaba Date: 2009-05-01T04:54:33+09:00 Subject: Strange two dimensional array behaviour This code is supposed to read in a 9x9 table (sudoku table) from a simple text file. It then needs to write it out on the screen. #read from file def puzzle_beolvas fnev f = File.new(fnev,"r") puzzle = Array.new(9){[]} for i in (1..9) puzzle[i] = Array.new(9) end i = 1 f.each do |sor| j = 1 sor.each do |str| puzzle[i][j] = str j = j + 1 end #print "\n" i = i + 1 end f.close #Write out the 2 dimensional array for i in (1..9) for j in (1..9) print puzzle[i][j] print " " end print "\n" end end #the program does this for every file, whose name is given as an argument ARGV.each do |a| puzzle_beolvas a end So, the output should be something like this: 6 1 5 4 2 9 3 8 7 4 7 2 8 5 3 1 6 9 3 9 8 1 7 6 2 4 5 7 4 6 2 3 1 5 9 8 5 2 1 9 8 4 6 7 3 9 8 3 7 6 5 4 1 2 8 6 7 5 4 2 9 3 1 1 5 4 3 9 7 8 2 6 2 3 9 6 1 8 7 5 . Instead, i get this: 6 1 5 4 2 9 3 8 7 nil nil nil nil nil nil nil nil 4 7 2 8 5 3 1 6 9 nil nil nil nil nil nil nil nil 3 9 8 1 7 6 2 4 5 nil nil nil nil nil nil nil nil 7 4 6 2 3 1 5 9 8 nil nil nil nil nil nil nil nil 5 2 1 9 8 4 6 7 3 nil nil nil nil nil nil nil nil 9 8 3 7 6 5 4 1 2 nil nil nil nil nil nil nil nil 8 6 7 5 4 2 9 3 1 nil nil nil nil nil nil nil nil 1 5 4 3 9 7 8 2 6 nil nil nil nil nil nil nil nil 2 3 9 6 1 8 7 5 . nil nil nil nil nil nil nil nil 6 1 5 4 2 9 3 8 7 Any ideas, why ? -- Posted via http://www.ruby-forum.com/.