>From the man page: ERRORS EINVAL The alignment parameter was not a power of two, or was not a multiple of sizeof(void *). ENOMEM There was insufficient memory to fulfill the allocation request. NOTES posix_memalign() verifies that alignment matches the requirements detailed above. memalign() may not check that the boundary parameter is correct. On Thursday 14 August 2003 16:42, Kimmo Fredriksson wrote: > Hi, > > I'm having troubles with posix_memalign. The following works OK: > > > int r; > void *p; > > r = posix_memalign( &p, 16, 65536 ); > if( r ) fprintf( stderr, "%s\n", strerror( r )); > > But e.g. this fails: > > r = posix_memalign( &p, 16, 65 ); > if( r ) fprintf( stderr, "%s\n", strerror( r )); > > i.e. it outputs: Invalid argument > > Why? It seems that the number of bytes (the last parameter) is "invalid". > This happens with at least gcc 2.96 and gcc 3.3.1. > > My system is Linux 2.4.18 / RH8.0. > > kf > > > --------------------------------------------------------------- > Acasa.ro vine cu albumele, tu vino doar cu pozele ;) > http://poze.acasa.ro/