353
unsafeCode (lemmy.ml)
you are viewing a single comment's thread
view the rest of the comments
[-] barubary@infosec.exchange 6 points 1 week ago

@affiliate Hey, you didn't even mention that char *args[] actually means char **args in a parameter list.

[-] affiliate@lemmy.world 5 points 1 week ago

god, what a beautiful language. it brings a tear to my eye

[-] Bogus5553@lemm.ee 4 points 1 week ago

I personally think that C++ can be beautiful. For example: std::filesystem::path overrides the / operator, for specifying parent paths. It’s the same as Kotlin’s OKIO and Pythons standard pathlib.

[-] racketlauncher831@lemmy.ml 2 points 1 week ago

It could, but not necessarily.

char **args can just mean you have a pointer which points to an address, and at that address, you can get a second address. Follow the second address, there is a char saved there.

On the other hand, char *args[] means " follow this address to find a list of characters".

[-] barubary@infosec.exchange 2 points 1 week ago

@racketlauncher831 As far as the C compiler is concerned, there is literally no difference between those two notations. If you declare a function parameter as an array (of T), the C compiler automatically strips the size information (if any) and changes the type to pointer (to T).

(And if we're talking humans, then char *args[] does not mean "follow this address to find a list of characters" because that's the syntax for "array of pointers", not "pointer to array".)

this post was submitted on 11 Feb 2025
353 points (100.0% liked)

Programmer Humor

33584 readers
29 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS