On Sunday, 18 March 2018 at 19:01:11 UTC, Joe wrote:
I managed to get it working by declaring a D dynamic array,
appending n_recs pointers to it and using it as argument to
sort. Unfortunately, I then had to copy from the dynamic array
to the fixed array in order to continue using the latter.
On Sunday, 18 March 2018 at 18:11:02 UTC, Dmitry Olshansky wrote:
Well since recs is array of pointers this looks like a null
pointer in your data.
The usual ways to fix that is either print stuff or poke around
in debugger to see if a Record* is null or .name is null.
The problem is that
On Sunday, 18 March 2018 at 18:11:02 UTC, Dmitry Olshansky wrote:
On Sunday, 18 March 2018 at 16:45:16 UTC, Joe wrote:
[...]
No it just creates a pair of pointer to recs[0] + length of
recs, like this:
struct Array
{
size_t length;
Record* ptr;
}
In D it’s typed as Record[] and has a
On Sunday, 18 March 2018 at 16:45:16 UTC, Joe wrote:
On Sunday, 18 March 2018 at 13:10:08 UTC, Dmitry Olshansky
wrote:
Do this to get the usual ptr + length:
sort!((a, b) => to!string((*a).name) <
to!string((*b).name))(recs[]);
Also to!string would be computed on each compare anew. May
On Sunday, 18 March 2018 at 13:10:08 UTC, Dmitry Olshansky wrote:
Do this to get the usual ptr + length:
sort!((a, b) => to!string((*a).name) <
to!string((*b).name))(recs[]);
Also to!string would be computed on each compare anew. May want
to use schwartzSort to avoid that, on 10 elements
On Sunday, 18 March 2018 at 11:29:47 UTC, Joe wrote:
On Monday, 12 March 2018 at 03:50:42 UTC, Joe wrote:
On Monday, 12 March 2018 at 03:13:08 UTC, Seb wrote:
Out of interest: I wonder what's your usecase for using
qsort. Or in other words: why you can't use the high-level
On Monday, 12 March 2018 at 03:50:42 UTC, Joe wrote:
On Monday, 12 March 2018 at 03:13:08 UTC, Seb wrote:
Out of interest: I wonder what's your usecase for using qsort.
Or in other words: why you can't use the high-level
std.algorithm.sorting.sort?
This is only temporary. I will be using
On Monday, 12 March 2018 at 03:13:08 UTC, Seb wrote:
Out of interest: I wonder what's your usecase for using qsort.
Or in other words: why you can't use the high-level
std.algorithm.sorting.sort?
This is only temporary. I will be using
std.algorithm.sorting.sort. I was converting a C program
On Monday, 12 March 2018 at 02:44:17 UTC, Joe wrote:
I saw the extern(C) and I believe I tried it before my previous
post, but dismissed it because I saw no difference in compiler
behavior.
Yeah, the compiler should just tell you what specifically it is
complaining about instead of making
On Sunday, 11 March 2018 at 23:12:30 UTC, Joe wrote:
I'm getting a compiler error in a qsort() call as follows:
qsort(recs, num_recs, (Record *).sizeof, compar);
Record is a struct, recs is a fixed array of pointers to
Record's and num_recs is a size_t that holds the number of
valid
On Monday, 12 March 2018 at 01:45:54 UTC, Adam D. Ruppe wrote:
I just reformatted it but now the difference should be visible:
`extern(C)` is missing on your callback.
The scope things might make a difference too, but I know for
sure extern(C) is necessary on your callback function.
I saw
On Mon, Mar 12, 2018 at 01:04:06AM +, Joe via Digitalmars-d-learn wrote:
> On Sunday, 11 March 2018 at 23:26:04 UTC, Stefan Koch wrote:
> > You have to pass a pointer to the function.
> > Otherwise it'll be a parenthsis-less call.
> > use : qsort(recs, num_recs, (Record *).sizeof, );
>
>
On Monday, 12 March 2018 at 01:04:06 UTC, Joe wrote:
and the latest error is:
D's error messages are so bad and shouldn't be hard to fix. It
kills me that basic every-day functionality like this isn't a
priority to the core devs. I even wrote a patch myself that would
call this out but it
On Sunday, 11 March 2018 at 23:26:04 UTC, Stefan Koch wrote:
You have to pass a pointer to the function.
Otherwise it'll be a parenthsis-less call.
use : qsort(recs, num_recs, (Record *).sizeof, );
After passing a pointer, getting some other error messages, I
changed the call to
On Sunday, 11 March 2018 at 23:12:30 UTC, Joe wrote:
I'm getting a compiler error in a qsort() call as follows:
qsort(recs, num_recs, (Record *).sizeof, compar);
Record is a struct, recs is a fixed array of pointers to
Record's and num_recs is a size_t that holds the number of
valid
I'm getting a compiler error in a qsort() call as follows:
qsort(recs, num_recs, (Record *).sizeof, compar);
Record is a struct, recs is a fixed array of pointers to Record's
and num_recs is a size_t that holds the number of valid records.
compar is this:
int compar(const void *p1,
16 matches
Mail list logo