Hi All, I am having a problem with a strange run-time AV error. See the link to the Lazarus project.
Download link: http://hotfile.com/dl/115480488/6b7a8ed/dtm_maker_001.zip.html The problem is in the QSort procedure: Procedure QSort( Var island_single_array : island_single_type; left, right : integer); Var d : island_single_type; pivot, lower1, upper1 :integer; begin lower1 := left; // ^^^^^^ AV run-time exception on above line. upper1 := right; pivot := island_single_array[left].location_number; While (left < right) do Begin Case SortType of ascending : begin While (island_single_array[right].location_number >= pivot) and (left < right) do dec(right); if (left <> right) then begin swap(island_single_array[left],island_single_array[right]); inc(left); end; While (island_single_array[left].location_number <= pivot) and (left < right) do inc(left); if (left <> right) then begin swap(island_single_array[left],island_single_array[right]); dec(right); end; end; end; // case end; // while pivot := island_single_array[left].location_number; left := lower1; right := upper1; if left < pivot then QSort(island_single_array,left,pivot-1); if right > pivot then QSort(island_single_array,pivot+1,right); end; { QSort } {--------------------------------------------------------------------} procedure QuickSort( Var island_single_array : island_single_type; Size : integer); begin QSort( island_single_array, 1, Size ); end; {--------------------------------------------------------------------} The AV exception error occurs after the project is run then the user selects File / Save and the QuickSort procedure is called which then calls Qsort. The error is occurring on: lower1 := left; which are both integers. Lower1 (which was renamed just in case of a name conflict with the 'lower' string function) is ??? (unassigned) and left is 1. I see no problem with this statement and it is a mystery to me why I am getting an AV exception error. Maybe someone here with better debugging skills can tell me why is this happening and how to fix it. Best Regards, Peter / pew
-- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
