English 中文(简体)
为什么这个可分配数组会出错?
原标题:Why does this allocatable array cause an error?
I don t entirely understand allocation, so this may be a simple problem, but I wrote this Fortran code: program name implicit none integer :: A, B integer, dimension(:), allocatable :: ARR do A = 1, 100 ARR(A) = A*2 end do do B = 1, 100 print "(i5)", ARR(A) end do end program name And it gives me a memory error. The code was supposed to assign 100 values to the allocatable array, each value being equal to the square of its index number, and then print each value. It instead gave me an error message saying, "Program received signal SIGSEGV: Segmentation fault - invalid memory reference."
问题回答
An allocatable object has to be allocated before being used, i.e. allocate( arr(100) ) do A = 1, 100 ... Or in this particular case you can use an array constructor and the allocate on assignment feature to replace the first loop: ARR = [ (A*2, A=1,100) ] And finally you can use the reallocate on assignment feature, element by element. The array has to be initially allocated an en empty array: allocate( ARR(0) ) ! or ARR = [integer::] do A = 1, 100 ARR = [ ARR, A ] end do This approach is highly inefficient in terms of performance, though.




相关问题
WordPress Data Storage Efficiency

I ve been asked to review a WordPress plugin of sorts and try to find ways of making it faster. The premise of this plugin is basically to store a bunch of users and shifts and appointments and ...

Convert a 2D array index into a 1D index

I have two arrays for a chess variant I am coding in java...I have a console version so far which represents the board as a 1D array (size is 32) but I am working on making a GUI for it and I want it ...

Convert an array of integers for use in a SQL "IN" clause

Surely there is a framework method that given an array of integers, strings etc converts them into a list that can be used in a SQL "IN" clause? e.g. int[] values = {1,2,3}; would go to "(1,2,3)"

Sorting twodimensional Array in AS3

So, i have a two-dimensional Array of ID s and vote count - voteArray[i][0] = ID, voteArray[i][1] = vote count I want the top 3 voted items to be displayed in different colors, so i have a 2nd Array -...

C++ Array Sort Me

Stuck on an array sorter. Have to sort numbers from largest to smallest. I m trying two loops (one nested in the other). Here s the code: int counter=0; // inner counter int counter2=0; // outer ...

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

Best practice of big javascript objects

sry for this imprecise topic name. I am querying a dataset a lot of times so using ajax request would end up in tons of http requests. For this reason I decided to use the json encode method to ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

热门标签