Re: a question of style
- From: "Default User" <defaultuserbr@xxxxxxxxx>
- Date: 28 Feb 2006 21:55:33 GMT
questions? wrote:
Artie Gold wrote:
questions? wrote:
I am curious about whether I should do thisWell since option 2 is not an option at all (arrays are not a first
say I want to calculate dot product of two matrix(4X4,fixed)
I do two ways
1)
void dot_product(double A[4][4] , double B[4][4], double
result[4][4]){ blah blah
}
my results are automatically given back in the matrix result[4][4]
or
2)
double [4][4] dot_product(double A[4][4],double B[4][4]){
double result[4][4];
blah blah
return result;
}
for the second type, result is local variable and will be released
after function call, Will the program have problem to access?
Are there better and neat way to this problem?
Thanks
class type in C, so an array cannot be a return value), you're left
with option 1.
The other option would be to wrap your array in a struct and return
that, but that would depend upon how you plan on using this code...
BTW - explicitly mentioning the first dimension of a passed array is
superfluous; i.e. `double A[][4]' and `double A[4][4]' -- or for
that matter double A[400][4] -- mean the same thing.
I see, I see.
but Do you have the same problem?
Say you locally define a structure which has the array you want to
return.
when you return that, you are pointing to a local variable which will
be released?
Only if you returned a pointer. With the struct variant, you return the
struct, so a copy is made of it. There's no pointer to a local variable
the way there can be with an array.
Brian
.
- References:
- a question of style
- From: questions?
- Re: a question of style
- From: Artie Gold
- Re: a question of style
- From: questions?
- a question of style
- Prev by Date: Re: trying to make my "fillvalues" function work...
- Next by Date: Re: stdint.h and portability
- Previous by thread: Re: a question of style
- Next by thread: Launch of User Interface Community
- Index(es):
Relevant Pages
|