On Mon, Jan 25, 2021 at 06:43:18PM +0000, Rempas via Digitalmars-d-learn wrote: > On Monday, 25 January 2021 at 18:28:09 UTC, Ferhat Kurtulmuş wrote: > > On Monday, 25 January 2021 at 17:38:21 UTC, Rempas wrote: > > > On Monday, 25 January 2021 at 10:33:14 UTC, Mike Parker wrote: > > > > [...] > > > > > > Thanks! Actually for some reason. It won't accept a char[size]. I > > > created a heap allocated (with pureFree and pureMalloc) chrar*, > > > then used fgets() and created an empty string and looped through > > > the result adding one by one character until the '\n' which is not > > > included. > > > > char[buffsize] works if buffsize is a compile time constant. Or just > > char[1024]. İt is a static array, and it's size must be defined at > > compile time. > > Idk, for my it says that you can't pass dynamic arrays to scanf
Dynamic arrays in D are "fat" pointers, they have a .ptr and .length, but scanf expects C-style bare pointers, so you have to specify .ptr in order to pass the pointer to scanf. Be aware, however, that doing this means you no longer have D's bounds-checking protection, and scanf may cause buffer overruns if the user gives bad input. T -- Being able to learn is a great learning; being able to unlearn is a greater learning.