On Friday 02 July 2010 19:20:26 Lawrence D'Oliveiro wrote: > In message <mailman.136.1278040489.1673.python-l...@python.org>, Rami > Chowdhury wrote: > > On Thursday 01 July 2010 16:50:59 Lawrence D'Oliveiro wrote: > >> Nevertheless, it it at least self-consistent. To return to my original > >> > >> macro: > >> #define Descr(v) &v, sizeof v > >> > >> As written, this works whatever the type of v: array, struct, whatever. > > > > Doesn't seem to, sorry. Using Michael Torrie's code example, slightly > > modified... > > > > char *buf = malloc(512 * sizeof(char)); > > Again, you misunderstand the difference between a C array and a pointer. > Study the following example, which does work, and you might grasp the > point: > > l...@theon:hack> cat test.c > #include <stdio.h> > > int main(int argc, char ** argv) > { > char buf[512]; > const int a = 2, b = 3; > snprintf(&buf, sizeof buf, "%d + %d = %d\n", a, b, a + b); > fprintf(stdout, buf); > return > 0; > } /*main*/ > l...@theon:hack> ./test > 2 + 3 = 5
I'm sorry, perhaps you've misunderstood what I was refuting. You posted: > >> macro: > >> #define Descr(v) &v, sizeof v > >> > >> As written, this works whatever the type of v: array, struct, whatever. With my code example I found that, as others have pointed out, unfortunately it doesn't work if v is a pointer to a heap-allocated area. ---- Rami Chowdhury "A man with a watch knows what time it is. A man with two watches is never sure". -- Segal's Law +1-408-597-7068 / +44-7875-841-046 / +88-01819-245544 -- http://mail.python.org/mailman/listinfo/python-list