Imagine I have this function: procedure ArrayTest(const data : array of char); begin ... end;
and in another routine I have a pchar variable. If I slice the array byte doing this: ArrayTest(myPChar[0..99]); then inside ArrayTest it will appear that data is 100 characters, which is exactly what I'd expect. However, it surprised me that this syntax was accepted (with a dereferenced pchar): ArrayTest(myPChar^); as well as this syntax (with a simple char): ArrayTest(myChar); In both of those cases, ArrayTest thinks it's got an array of length 1. My question is (and I know this is a long shot): is there some sort of compiler directive or directive I can include in my source code to disallow the syntax of my second and third examples, ie., to disallow passing a single element as an open array? Thanks, -SG
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal