Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "c++ pointers"
-
Any devs here that Code in C/C++...?
Or am I lost in "webRant".
I am worried about the future " code everything in javascript " generation :)
Make pointers great again!75 -
Java and C were telling jokes. It was C's turn, so he writes something on the wall, points to it and says "Do you get the reference?" But Java didn't.
C gets all the chicks and Java doesn't? Because C doesn't treat them like objects.
But I think C could at least give Java some pointers8 -
Teaching a friend C:
"Thanks for giving me all the... ahem. Pointers."
Waits 2 Minutes
"But like seriously what is a pointer again?"8 -
Anyone looking for something interesting to do???
Step 1) understand how basic circuitry works on a bread board nothing too fancy. ( Implement NAND, AND, ADDER, SUBTRACTOR)
Step 2) learn about microprocessors and how OS works
Step 3) learn assembly
Step 4)write a basic assembler and understand how loaders and linkers works !
Step 5) write a kernel with very basic features like memory management and process management and some drivers for IO
Step 5) write an emulator for some simple systems .! ex chip-8.
Step 6) read about compiler theory and automata
Step 7) write a basic Python interpreter that compiles (not interpreter) to native assembly.
Step 8) implement TCP stack .
Step 9) learn as much as u can about complexity measurement ), data structures and algorithms using C or C++ it's very important ( familiarity with pointers and thus computer memory )
Step 10) learn any high level language of choice like Python or Ruby.
Step 11) stop debating over tabs vs spaces , emacs vs vim , angular vs vue, php vs Python , OOps vs procedular vs functional ( just know about all of them and when to use but don't fucking debate over which one is superior )..
Step 12) live happily and be healthy.30 -
This morning finally pointers to structs in C finally clicked on my mind!!!🤯
80% of the C code that puzzled me now makes sense!! 🤗12 -
Backend internship interview
They: Can you reverse the given string without using pointers? (C++)
Me: Yeah, sure
*Then I start explaining how I am gonna approach the problem and such*
They: Ok, we understand that you can do it, now can you write a front-end that has a couple of routes. Also, these routes should have some sort of list views because we want you to print information **attention** that you are going to parse from Amazon inside those list views.
Me: *dumbfounded and trying to explain that am not a front-end developer*
They: But we still want you to do this.3 -
Brother of my friend came to me and asked me to teach him C as it was most important lesson in high school CS. I agreed and started with data types, conditional statements, loops and others that were mostly exam oriented. He was doing good. Then I thought of teaching him a life lesson and introduced him to pointers(questions about pointers are very rare in exams). As soon as I started the pointers, things got pretty bored and he went off topic and started talking about a girl he has crush on and told he wanted to know when her birthday was so that he could gift her something to be ahead of the crowd trying to impress her. I thought to help him out, afterall he's like my younger brother and told him I can help. Result of his previous exam were out then, providing symbol number on Examination Board's website would do the trick because it would return full data of students result which had birthday in it. I modified my previous script to fetch data of his school's result and pass the data to a file. They're together since last few months. He reminds me time to time that my code is what got them together.8
-
Boss: "Yeah we have a logging project coming up that has to be done in C" Me: "I know C, I can give some pointers on that"5
-
I have not used c++ in almost 2 years. I'm regaining familiarity with it.
I come from 2 years of Java and python.
I'm ranting a lot about some things, but damn, pointers and stuff are so sexy.14 -
One of the morons said today that we should use C because you don't need to "apply logic" in Python. Everything is automated in python. Fucking morons............
It doesn't ends here. One of the "9 pointers gang" student raised an objection. I was happy untill he said that there is no boolean datatype in C. I literally shouted "Shut up, morons. There is a whole fucking library dedicated to it." in a class of 60 students.
Don't know how I survived 3 years here. And more importantly, don't know how will I survive my next year.
P.S.: the 9 pointer guy who raised the objection, once asked me whether chrome is developed and maintained by Google?15 -
C is not that hard:
void (* (* f[ ]) () ) () declares f to be array of unspecified size, of pointers to functions, which return pointers to functions which return void.
By the way, I am uncomfortable with the fact that I am comfortable with this statement.6 -
teaching myself pointers right now
here is my learning process right now:
1. what even is this
2. wow this is neat
3. why does this even exist
4. what even is this
5. repeat9 -
Email subject: Urgent need for developers!
Email body: We found you in our database, and think you're a match for this position! Requires 5+ years of C++ experience
Apparently C# == C++. Good luck finding an appropriate candidate, buddy. I was tempted to send them an email pointing out their error, but I'm not too good with "pointers"4 -
when your first try to learn a new programming language, for example c++ and you are still new to coding:
"Wtf does it behave this way. How dafuq do pointers work...argh"
and then years later, you come back to c++, do a little revision and it all starts to fall into place and make sense. Man. That feeling.3 -
Pointers in C. You love'em or you hate'em. A lot of room to shoot ourselves in the foot or hang ourselves. Or doing both because someone thought it would be genius to tie the guns to the rope.2
-
That moment when you understand and love your most hated enemy in c. Yepp. I am talking about pointers. 😍16
-
I could bitch about XSLT again, as that was certainly painful, but that’s less about learning a skill and more about understanding someone else’s mental diarrhea, so let me pick something else.
My most painful learning experience was probably pointers, but not pointers in the usual sense of `char *ptr` in C and how they’re totally confusing at first. I mean, it was that too, but in addition it was how I had absolutely none of the background needed to understand them, not having any learning material (nor guidance), nor even a typical compiler to tell me what i was doing wrong — and on top of all of that, only being able to run code on a device that would crash/halt/freak out whenever i made a mistake. It was an absolute nightmare.
Here’s the story:
Someone gave me the game RACE for my TI-83 calculator, but it turned out to be an unlocked version, which means I could edit it and see the code. I discovered this later on by accident while trying to play it during class, and when I looked at it, all I saw was incomprehensible garbage. I closed it, and the game no longer worked. Looking back I must have changed something, but then I thought it was just magic. It took me a long time to get curious enough to look at it again.
But in the meantime, I ended up played with these “programs” a little, and made some really simple ones, and later some somewhat complex ones. So the next time I opened RACE again I kind of understood what it was doing.
Moving on, I spent a year learning TI-Basic, and eventually reached the limit of what it could do. Along the way, I learned that all of the really amazing games/utilities that were incredibly fast, had greyscale graphics, lowercase text, no runtime indicator, etc. were written in “Assembly,” so naturally I wanted to use that, too.
I had no idea what it was, but it was the obvious next step for me, so I started teaching myself. It was z80 Assembly, and there was practically no documents, resources, nothing helpful online.
I found the specs, and a few terrible docs and other sources, but with only one year of programming experience, I didn’t really understand what they were telling me. This was before stackoverflow, etc., too, so what little help I found was mostly from forum posts, IRC (mostly got ignored or made fun of), and reading other people’s source when I could find it. And usually that was less than clear.
And here’s where we dive into the specifics. Starting with so little experience, and in TI-Basic of all things, meant I had zero understanding of pointers, memory and addresses, the stack, heap, data structures, interrupts, clocks, etc. I had mastered everything TI-Basic offered, which astoundingly included arrays and matrices (six of each), but it hid everything else except basic logic and flow control. (No, there weren’t even functions; it has labels and goto.) It has 27 numeric variables (A-Z and theta, can store either float or complex numbers), 8 Lists (numeric arrays), 6 matricies (2d numeric arrays), 10 strings, and a few other things like “equations” and literal bitmap pictures.
Soo… I went from knowing only that to learning pointers. And pointer math. And data structures. And pointers to pointers, and the stack, and function calls, and all that goodness. And remember, I was learning and writing all of this in plain Assembly, in notepad (or on paper at school), not in C or C++ with a teacher, a textbook, SO, and an intelligent compiler with its incredibly helpful type checking and warnings. Just raw trial and error. I learned what I could from whatever cryptic sources I could find (and understand) online, and applied it.
But actually using what I learned? If a pointer was wrong, it resulted in unexpected behavior, memory corruption, freezes, etc. I didn’t have a debugger, an emulator, etc. I had notepad, the barebones compiler, and my calculator.
Also, iterating meant changing my code, recompiling, factory resetting my calculator (removing the battery for 30+ sec) because bugs usually froze it or corrupted something, then transferring the new program over, and finally running it. It was soo slowwwww. But I made steady progress.
Painful learning experience? Check.
Pointer hell? Absolutely.4 -
Me always:
*starts coding in C/C++*
*M so gonna use raw pointers... Raw pointers ftw!*
*Spends 2 hours to code*
*Spends next 4-6 hrs trying to find why it is crashing/giving segmentation fault*
*Finally finds the solution and feels like winning a boss in Dark souls*
*Totally worth using raw pointers* 😎😎😂😂3 -
It has been bugging the shit out of me lately... the sheer number of shit-tier "programmers" that have been climbing out of the woodwork the last few years.
I'm not trying to come across as elitist or "holier than thou", but it's getting ridiculous and annoying. Even on here, you have people who "only do frontend development" or some other lame ass shit-stain of an excuse.
When I first started learning programming (PHP was my first language), it wasn't because I wanted to be a programmer. I used to be a member (my account is still there, in fact) of "HackThisSite", back when I was about 12 years old. After hanging out long enough, I got the hint that the best hackers are, in essence, programmers.
Want to learn how to do SQL injection? Learn SQL - write a program that uses an SQL database, and ask yourself how you would exploit your own software.
Want to reverse engineer the network protocol of some proprietary software? Learn TCP/IP - write a TCP/IP packet filter.
Back then, a programmer and a hacker were very much one in the same. Nowadays, some kid can download Python, write a "hello, world" program and they're halfway to freelancing or whatever.
It's rare to find a programmer - a REAL programmer, one who knows how the systems he develops for better than the back of his hand.
These days, I find people want the instant gratification that these simpler languages provide. You don't need to understand how virtual memory works, hell many people don't even really understand C/C++ pointers - and that's BASIC SHIT right there.
Put another way, would you want to take your car to a brake mechanic that doesn't understand how brakes work? I sure as hell wouldn't.
Watching these "programmers" out there who don't have a fucking clue how the code they write does what it does, is like watching a grown man walk around with a kid's toolbox full or plastic toys calling himself a mechanic. (I like cars, ok?!)
*sigh*
Python, AngularJS, Bootstrap, etc. They're all tools and they have their merits. But god fucking dammit, they're not the ONLY damn tools that matter. Stop making excuses *not* to learn something, Mr."IOnlyDoFrontEnd".
Coding ain't Lego's, fuckers.36 -
The GashlyCode Tinies
A is for Amy whose malloc was one byte short
B is for Basil who used a quadratic sort
C is for Chuck who checked floats for equality
D is for Desmond who double-freed memory
E is for Ed whose exceptions weren’t handled
F is for Franny whose stack pointers dangled
G is for Glenda whose reads and writes raced
H is for Hans who forgot the base case
I is for Ivan who did not initialize
J is for Jenny who did not know Least Surprise
K is for Kate whose inheritance depth might shock
L is for Larry who never released a lock
M is for Meg who used negatives as unsigned
N is for Ned with behavior left undefined
O is for Olive whose index was off by one
P is for Pat who ignored buffer overrun
Q is for Quentin whose numbers had overflows
R is for Rhoda whose code made the rep exposed
S is for Sam who skipped retesting after wait()
T is for Tom who lacked TCP_NODELAY
U is for Una whose functions were most verbose
V is for Vic who subtracted when floats were close
W is for Winnie who aliased arguments
X is for Xerxes who thought type casts made good sense
Y is for Yorick whose interface was too wide
Z is for Zack in whose code nulls were often spied
- Andrew Myers4 -
We were in a c class learning about pointers, the teacher was doing small stars on the board to explain the basics of them.
After a short while we all understood, or so we taught.
Someone asked about double pointers, so the teacher put 2 stars on the board to explain. THEN THE IDIOT OF THE CLASS GOES AND BLOODY ASKS IF WE COULD REPLACE THE 2 STARS BY A BIG ONE.
I MEAN OF COURSE JUST PUT A STAR EMOJI TO MAKE A DOUBLE POINTER.
The legend still lives on as he got kicked for an unknown reason🤔.3 -
Why do people jump from c to python quickly. And all are about machine learning. Free days back my cousin asked me for books to learn python.
Trust me you have to learn c before python. People struggle going from python to c. But no ml, scripting,
And most importantly software engineering wtf?
Software engineering is how to run projects and it is compulsory to learn python and no mention of got it any other vcs, wtf?
What the hell is that type of college. Trust me I am no way saying python is weak, but for learning purpose the depth of language and concepts like pass by reference, memory leaks, pointers.
And learning algorithms, data structures, is more important than machine learning, trust me if you cannot model the data, get proper training data, testing data then you will get screewed up outputs. And then again every one who hype these kinds of stuff also think that ml with 100% accuracy is greater than 90% and overfit the data, test the model on training data. And mostly the will learn in college will be by hearting few formulas, that's it.
Learn a language (concepts in language) like then you will most languages are easy.
Cool cs programmer are born today😖31 -
!rant
I'm a long time Unity3D C# programmer and i mostly build android games for fun. About half a year ago i dumped windows for Debian Linux(fucking love it) but I quickly started to miss my unity3d environment. Unity in a VM doesn't work and the outdated, beta, crash prone linux version doesn't support android so i started looking for an alternative.
I decided to give Godot a shot but moving from a statistically typed language to a dynamically typed one literally breaks my brain. The last couple of hours of reading the documentation pretty much consisted of: WHAT? YOU CAN'T DO THAT! NO. WHAT? WTF IS THAT SYNTAX? oh I think I'm getting it WHAT DO YOU MEAN POINTERS DON'T EXIST!?22 -
Using an array of function pointers to replace large switch statements... holy shit.. I feel like Thanos getting the time stone.
Just when you think you can’t get your code to run any faster, nor did I think I could get the code any smaller... BOOM.. C never ceases to impress.
Next I’ll be turning this into “object” oriented ... but since it’s C ... it will just be Struct oriented .. SOP ..18 -
Been really busy with things haven’t got around to posting a book in like a week or so..
But I’ll post one today..
This book...
This book, available for free online or you can buy it, written in 1994. But so under appreciated by people for some reason most people never have seen it or know about it. But this is the ONLY book I know of that actually covers this topic.. the only book in existence that specifically goes thru how OOP can be done with C.
NOW hold up before you say just use C++ stop and think for a second.. bear with me.
First off this book is purely for informational purposes and educational use to deepen your understanding of what OOP is actually doing behind the scenes in languages like C++ where keywords exist for these things and you just blindly use them without thinking about under the hood.
This book contains a lot of code and builds you up a complexly library from scratch to make OOP in C... now I don’t take this book literally and this but I have implemented some concepts from this book in projects in the past, and it helps a lot.
Also in my honest opinion If you finish this book, you will be a better C programmer AND c++ programmer, C programming because it teaches you a lot about complex things that you never thought about doing with the language. It proves you can do polymorphism can do inheritance and encapsulation. And it’s not really bloated either.
This books is an awesome book, if you don’t understand C pointers you definitely will after this book.. if you don’t understand OOP in C++ what’s really going on.. you will after this book. After all C++ began as just a preprocessor of C.
Great book for writing reusable, extendable large scale embedded c systems.
Anyway.. rare book of which should not be rare considering it’s free.3 -
Well I'm a first year student in computer science and in the first semester we started to learn C language and the IDE they told us to use for better learning was Devcpp.
We made a few small projects and all went well, but now in the second semester we started to make bigger projects with linked lists and memory allocation and Devcpp starts to be a complete bug itself... We are working hard in the project and after saving the project with no errors at all, at the next day, Devcpp starts to make any function we made invalid...
So we spoke to the same teacher about this and asked what can we do about it....
"Are you using Devcpp? You shouldn't, it is not that good for C"...
ARE YOU KIDDING ME?14 -
I have been on Reddit...
I have been lurking in ProgrammerHumor...
I am not proud of these things...
I got called a "Big Shot" because I didn't think the concept of pointers in C/C++ was ever particularly hard.
If I remember right. I learned in high school how pointers worked when they explained how arrays worked in Pascal. When I taught myself C it didn't ever seem like it was a difficult thing to understand.
Is the concept of pointers really that hard to understand for devs?17 -
Took a class on computer systems, was supposed to be taught instruction sets, interrupts, pointers, basic gate level digital logic, etc. Professor spent the whole semester going line by line in the Visual Studio disassembler for some arbitrary C code, explaining in painfully dull detail, what each assembly line did. They did this for every class session, including the first, with no introduction to assembly. I lost count of how many times I fell asleep in class.
-
Today I got a segmentation fault in C#.
No pointers. No unmanaged dependencies. Just managed code. Seg fault.
Uhhhh...20 -
I just started as a computer science major, and I'm a little irritated because I think I know more than my proffessor. I was excited that I would be pushed to my limits, but the other day I asked him for things I should work on to get ahead...
Him: Sure, page 475 has some good projects. Just don't go past chapter 9 unless you're confident with pointers.
Me: I did C before C++ and I hated pointers.
Him: C doesn't have pointers, you must have been using a different version of C.
Me: OK
Like really? I just can't wait till next semester.7 -
Bit the bullet and installed VS and relevant compilers for C++ and started fucking around with sdl.
Not as terrible as I thought it was going to be.
Pointers seem pretty intuitive. Apparently my time with python has not in fact mentally mutilated me.7 -
I am working on an open source game project, and the most common way to draw things is using a class named ManagedSurface. The class is otherwise awesome, but it has a method called getBasePtr(x, y), which gives you a pointer to the requested coordinates. Fair enough (this is C++ without STL by the way).
But WHY THE HELL CAN I REQUEST ANY POINTER THAT I WANT, EVEN IF IT'S OUTSIDE THE SURFACE? Other cointainers have sanity checks, asserts and such, and the surface KEEPS TRACK OF IT'S WIDTH AND HEIGHT.
WAS IT SO FUCKING HARD TO ADD assert(x <= w); assert(y <= h);???
I spent 3 days on valgrind trying to find a heap corruption that manifested at random points in the code.
FUUUUCK!
On the bright side, I learned how to use valgrind (which is awesomely awesome).4 -
LOL that's why I love C!
The function pointer cast for strcmp because qsort expects a compare function with two const void * pointers instead of two const char * pointers, that's just beautiful.
Not to mention the hack to abuse strcmp on a struct - which just works because the first struct member is a string and the rest just gets swapped with memcpy as opaque data.
I guess that wouldn't pass a code review at work. :-)6 -
There are so many. One that gave a lot of warm fuzzies, was when I was teaching pointers in a C++ class, and as I was describing them, watching the faces as the light bulbs came on one by one. You have to understand, these weren't school students, these were professional Devs adding another language to their coding toolbox. It was so cool!
-
Before I decided to learn C, I had heard tell of pointers being "hard to use". Of course I thought "maybe so, " after all, that was basically the only thing I heard about pointers, "they are hard!".
And so, when I learned C, and I got to the part about pointers, I was expecting at least some trouble (I can't know everything) and it was just... easy? Maybe the trickiest thing was how * has two different meanings based on the context (declare/dereference) but that was easy too.
Why the hell is all I hear from people about pointers is that they're difficult?15 -
Both GCC and Clang can switch off the braindead type-based aliasing rules through the "-fno-strict-aliasing" compiler option so that everything can alias everything.
On the other hand, C offers the "restrict" qualifier for pointers where you promise that nothing will alias this memory area, not even same type pointers.
What happens if you use "restrict", but compile with "-fno-strict-aliasing"? Will the "restrict" be obeyed or disregarded?
Answer in the comments.8 -
Got told by a senior engineer to basically fuck off with my standard library containers like vector because they are used by people who dont know how to write code in c++ and don't know how to handle pointers.
Am I wrong for trying to use as much possible code from the standard library?13 -
Recently covered pointers in class. I know how to use them/Have an understanding of what they do, but why would I need to use a pointer in the first place? What problem would need to be solved through the use of pointers?15
-
Uninitialized pointer is not the same as NULL pointer !
Uninitialized pointer is not the same as NULL pointer !
Uninitialized pointer is not the same as NULL pointer !
Uninitialized pointer is not the same as NULL pointer !5 -
Am I the only one who enjoys learning low languages like C/C++ and absolutely hate Java (seriously FUCK Java so much I hate using it)
Working with pointers and just having the compiler completely explode in your face because you forgot a semicolon or an index out of bounds maybe a bracket just disappeared and you are frustrated but then you fix it and voila it works like magic.
Maybe it's just a thing of mine because C++ was the first programming language I learned and I miss this feeling of hopelessness (I think I might have done BDSM fetishes) and it makes me feel nostalgic.
When I was first learning them all I thought about was how cool this stuff is.19 -
Did anyone heard about modular C?
I'm working on it at school, it's like how to do OOP in C with structures and function pointers.
We're developing the String class but next, we will make a basic C++ implementation in C before beginning the real C++
Do you think it's a good path?5 -
So we had a guy who spend decade in automotive, flight simulation and stuff. C mostly. Lasted only a month of his probation period. Didn't seem to know about double pointers. Maybe coding standards in automotive even discourage them...
But made me wonder how to judge skills. - I tend do be on the cautious side, as I hadn't really understood inheritance and many basic things when I started. But luckily my first boss believed in me, saw me gnawing through (Well about my 'initiation' that'd be others stories to tell). Well, guy was hired as a 'senior', so they expected bit more. Dunno, still feel a bit strange about it, even if I ranted about his chattering before, coz he also had his heart in the right spot, but maybe it's for the best anyway...
But guess who's taking his place in our team! Drumroll.. Yes, Mr gitmaster is. -
!rant
So coming from the interpreted language world (mainly using python), I'm always amazed on how compiled languages work. Especially C.
Every time I use C, it's like everything is sooooo faster (runtime), and yes I've read about it so many times. It's just that I can't explain this great feeling about actually seeing the results of using C.
Man, I think I just love C (even though I'm still confused in using pointers).4 -
Ok c++ professionals out there, I need your opinion on this:
I've only written c++ as a hobby and never in a professional capacity. That other day I noticed that we have a new c++ de developer at the office of which my first impression wasn't the greatest. He started off with complaining about having to help people out a lot (which is very odd as he was brought in to support one of our other developers who isn't as well versed in c++). This triggered me slightly and I decided to look into some of the PRs this guy was reviewing (to see what kind of stuff he had to support with and if it warranted his complaints).
It turns out it was the usual beginner mistakes of overusing raw pointers/deletes and things like not using various other STL containers. I noticed a couple of other issues in the PR that I thought should be addressed early in the projects life cycle, such as perhaps introduce a PCH as a lot of system header includes we're sprinkled everywhere to which our new c++ developer replies "what is pch?". I of course reply what it is and it's use, but I still get the impression that he's never heard of this concept. He also had opinions that we should always use shared_ptr as both return and argument types for any public api method that returns or takes a pointer. This is a real-time audio app, so I countered that with "maybe it's not always a good idea as it will introduce overhead due to the number of times certain methods are called and also might introduce ABI compability issues as its a public api.". Essentially my point was "let's be pragmatic and not religiously enforce certain things".
Does this sound alarming to any of you professional c++ developers or am I just being silly here?9 -
Our teacher gave us some code to better understand c pointers. The only problem is that it spits out a dozen of errors when you try compile it 😂2
-
Talking about adrenaline sports in a class and our favorites.
Me ? Writing C code without checking for null pointers!
What about you ?1 -
Debugging when you deallocated an objected which is still referenced by pointers else where is like find waldo with a 2x2 meter picture. Except you don't know what waldo looks like.3
-
I have waitsted whole my day searching a bug with memory allocation in C++, and still don't know how to fix it! That moment, when coding took me far less time than searching that fucking bug... I feel that i missed anything, but all looks ok
I HATE C++ WITH IT'S FUCKING POINTERS!!!!!25 -
Sometimes it confuses me, if I have to use pointers or not in c++ & qt. Especially when both variants work fine. :)1
-
So I'm studying at a university where everyone who studies electronics has to do the same "internship" where we have to program some microcontroller.
For most of us it is the first time programming with pointers and working with the register (C++). But the institute who does this shitty internship manages to FUCK up the class description and even the classes and methods they give you.
In the class description there are methods missing so you have no idea what they want you to do with that method and then they write stuff in the class description that aren't in the class and you don't need. For fucks sake how can you fuck up such a simple task.
And then their shitty template is wrong. If you expect your students to do well please for fucks sake make sure you give your students the correct classes and descriptions. Many students won't fucking know what is wrong because the never programmed in C++. The best part is that they are doing this "internship" for more than 5 years.5 -
For a long time I was of the opinion that pointer variables in C/C++ should have the asterisk immediately after the type name (e.g. int* foo).
Eventually I became convinced that it makes more sense to have it before the variable (e.g. int *foo).
Now I find routines that return pointers look weird, e.g.: void *allocate_something() so I am considering adopting the original style I used.
The only advantage of having the asterisk before the variable name I am aware of is that it is easier to remember to add an asterisk if you define more than one pointer on that line.
Anyone else find it hard to settle on code style guidelines for their own personal projects?12 -
! rant
I started to learn Matlab today. After I learnt that arrays starting with 1 in the Matlab, I started to think about why using 0 based arrays was made popular in the first place and I realized that C arrays actually just pointers and first element of the array is just a location pointed by array name. There is no need to add number to reach to the first element. After googling it, I saw that my assumption is true. Finding it all myself made me a little bit of proud 😀😀😀 Also, this expanded my horizon 🗻🗻🗻2 -
C++. Damn the pointers. It's because I learned Java before C++ and the memory management in C++. I don't get it ever, the object creation, memory allocation, deallocation and everything4
-
I always wanted to learn more about C and learn the dark concepts in it. But whenever i search for it ( like.. " Advanced C concepts " ) or find a book , i end up finding dynamic memory allocation and using single dimensional pointers.. Maybe i am searching it all wrong .14
-
I've just noticed, the rest of the world says things like "your check is null and void," as if those two things are one and the same.
Meanwhile, to us devs, they couldn't be any more different! Something can't be both null AND void! 😅undefined void null function return values memory locations c declaring variables c++ coding pointers8 -
First Year in College.
I have been into computers since 9th Standard. What I meant was I could make music, edit images, play and install games after downloading, hack them(change values) using Cheat Engine, make trainers for myself because why type when you can freeze, format computers using a pendrive (trust me, I saved a lot of money) and then finally, make some presentations and send emails.
Now, College begins. Programming in C language. I don't know what the fuck that means. But they say, it's 'essential'.
Enter Professor. "Okay students, we begin with the course on C Language. how many of you know pointers?".
Me: Wow. Sounds cool. But, I don't know anything.
I couldn't love coding. I think I love to code but at the end of the day, I'm a sick Undergraduate who fell in love with a Bass Guitar and Vocals and wants to code for a living. Heavily interested in changing the world and all that stuff but have no motivation and even if I have, I can't give a fuck about it.
Peers are getting medals everywhere. I'm sitting alone in a room learning C. They said, It was 'essential', but they never told me, 'why'.
Not a rant. IDGAF what you think but I'm a failure looking for ways to make a living.6 -
I joined a project that has been in development for four years. After a couple of weeks of getting used to what has already been done I saw some strange coding.
One thing that struck me in particular was how often I saw pointers to pointers of objects being passed as arguments without any obvious reasons.
Only after I got to write a new functionality myself did I see why that was done.. as I needed to do it too. I had to allocate the memory for an object that was given as the parameter.
C is a hell of a language.. just as I thought I was good at it things like this happen. -
c++ has a little bit of a learning curve, I think.
Used smart pointers everywhere in my code because I heard that's what we gotta do nowadays.
When learning about shared vs unique vs weak, I disregarded weak pointers because I didn't really understand them.
"That sounds like something for liberal pansies", I said to myself, then continued on with my STRONG shared and unique pointers.
Now my app leaks memory like a MOTHERFUCKER, if you can believe that.
So now I need to go back and manage my object lifetime with more intent instead of just making everything a shared pointer. Fuckin circular references. Fuckin reaping what I fuckin sow. God damn.9 -
The moment of truth on wanting to be a programmer or not... Is when you learn about pointers in c language.2
-
I've always been a tech fan. Made my first site when I was 12, but I stopped at HTML and CSS. Now I started coding, and here I am - 24y/o studying pointers in C. I don't even php.
Am I too late? How old were you when you first started coding?9 -
My best teacher was with me for C++ in high school and in college. He had the most relaxed, laid back style while managing to both make the lessons fun.
Perhaps my favorite lesson was around C++ and Pointers. Lessons generally we mixed with long ramblings about the military and live coding examples. He was talking about object references and Navy ships when he told a student to "give me the USS Wisconsin". Perplexed, my classmate said he wasn't sure he could do that without a lot of help. So this teacher drew an arrow on a piece of paper, showed it to the class and then found the general direction he wanted it to aim for and taped it to a pole next to the stage. He called that a Pointer to a USS Wisconsin and then asked the student to give him the USS Wisconsin again.
I understand pointers today because of that lesson.2 -
Making a function pointer in C and typedef-ing it.
Done wrong. Every single time.
Look up in the internet.
Copy a typdef-d function pointer.
It works.
Check it's syntax.
THE SAME FCKIN SYNTAX AS DONE FIRST!
And that's why I hate function pointers.2 -
Actually kinda sad, that there is no pure rust ui framework out there, but rather mere adaptations of c/c++ frameworks for rust. It's better than nothing for sure, it just would be nice, if i could use a framework, that doesn't create a massive memory leak, because i looked at it funny.
In particular i'm using fltk-rs, and everytime I'm applying a font to some widget, 500kb get added as leaked memory. Doesn't sound like a lot, but for one it's a dynamically built application, so the order and amount of widgets changes, and this application is supposed to run days, if not weeks.
thanks to heaptrack i was able to pinpoint that to libpango, which i'm not even interacting with directly, but rather indirectly through the api.
Annoying, that i chose to use a language for actively preventing leaks and dangling pointers and stuff, but end up leaking memory because of a dependency somewhere.7 -
Well after 3 days of fighting with C I finally got my assignment done ✅ :D the assignment was simple and would have taken me like 5h max to do in Java( which is my first and most proficient language).
However I was away from class for a while and subsequently had to code the project while teaching myself about C and pointers .🤖
This is why we don’t skip school kids 😄
P.S It surprised me how many other people were in the schools lab at 2AM to push the assignment to the local git 😮9 -
So I have never done 'real' development on anything bar my current game engine Virgil, however found myself referring to C documentation for GLib and SDL2 rather than valadoc documentation.
Decided fuck it, I'm already converting everything to Vala's pointer syntax so I can have manual memory control, implementing stb_image and contemplating reworking SDL2_image into raw C so I'm not depending on extra libraries... Why do all this when I can just learn C and have more control.
Everything was going well and decided to buy the C programming language book, already knew about pointers and structs but ohhhhhhhhhhhhhhhhhhhh boi was I not ready for malloc .-.7 -
I'm going to re-try my ConsoleWidgets/ CursesWidgets project from complete scratch. Here are some things I learned and will do better this time with:
- Keep people updated on progress to maintain motivation (Hence this post)
- Centralize drawing, eliminate curses entirely besides in this static class.
- Don't worry about complicated rendering until basic rendering is done. I really got stuck up on text rendering last time.
- Sort out a color system from the very beginning, and make it as simple as possible. Working with curses, it is a good idea to have a color manager.
- Research how to logically render two items - both sized to 50% of the screen - when there are an odd amount of pixels available.
- Only make one type of widget at the beginning. Don't worry about Buttons and Sliders and such until the base Widget class is completed.
- Truly decide if I want to call them Widgets or Controls
- Don't worry about supporting multiple curses windows. Got hung up on that too. stdscr will do for everything I need.
- Cache inflation values so that they need not be re-calculated each render. Re-calculate on resize.
- This is more of a c++ thing, but drop pointers in favor of references. It's 2018. I have already started to do this in other projects but THIS IS THE ONE. -
So this semester we're being taught C/C++ which now seems to me like a distant memory from high school days.
The professor decides to use visual studio for something as trivial as variables and pointers and as I went through the syllabus, it won't get any harder and will stick to this simple stuff.
As much as I find VS awesome, when there is a simpler approach available, why go the tougher way?
The same could easily be achieved from a ~15 compiler or even that 16bit compiler we used in our high school that couldn't even use mouse as an input. Am I over thinking this? .-.4 -
Note: I have deleted my previous version of this question as I found it lacking crucial information and therefore being prone to misunderstandings.
Question : In C/C++ you can position the keyword 'const' either left or right of the left-most type specifier. Which variant do you prefer?
I ask that because I'd like to hear your opinion. Although I have been working with C over three decades now, I only learned this a couple of years ago. After some experimentation I decided for myself, that I like the placement to the right more. Although the positioning to the left is taught in literally every book and course, the original placement suits me better.
One reason, of many, is the listing of many member variables in structs or classes. To have them nicely aligned, I always had to put 'const' either on the previous line or put in extra indention to everything non-const. That was quite irritating sometimes.
Another, and my main reason is, that when reading from right to left, the rhs variant just makes more sense than the lhs variant. Reading from left to right almost never makes much sense without straining your eyes. But that is, of course, highly subjective.
This is even more so if you have pointers. The 'const' keyword modifies the type identifier(s) to the left. So if the 'const' is (anywhere) left of the '*', the data is const. If the 'const' is right of the '*', the pointer address itself is const. The same applies to references.
Examples, read right-to-left:
int* const i; // i is a const pointer to int data
int const* i; // i is a pointer to const int data
int const* const obj; // i is a const pointer to const int data
The "classical" or "taught" way, that is found almost everywhere would read, still right-to-left:
int* const i; // i is a const pointer to int data
const int* i; // i is a pointer to int data const
const int* const obj; // i is a const pointer to int data const
Not only that the second "lhs" form reads worse, it also looks worse. In my opinion, the first "rhs" variant makes it simpler to quickly determine that we are dealing with three ints, while on the second "lhs" variant, one has to first get past the 'const' keywords.
I know that this is not only a matter of taste, but of course of agreement, too. You can not just go and switch the 'const' placement in long standing projects. That would surely piss of a lot of people. Or even cost you your job.
But I like to know what you people think and why.
Thanks a lot in advance!5 -
Okay I've commented on multiple people's post already but I've decided to write a rant on it.
GOD I hate C++. For our software architecture minor we have to develop a game with only C++ and SDL and it's been one big freaking nightmare.Where almost every freaking language I've worked with has a proper way to add third party libraries most of them in C++ don't even fucking work after spending half a day. I know a lot of you guys love programming in C++, but it's been the language I've been struggling the most with in four years of university. Unbelievable. Fuck it's freaking pointers and all it's bullshit.3 -
When gdb doesnt automatically deferences `this` but you just explicitly deference it at the start of every method:
Ps: the reference variable was literally called `dbug_mee_dawg`
Ps2: Java programmers will ***never*** understand this /s4 -
I'm thinking of designing a programming language.
I want it to have easy to read syntax like python. Inheritance and interfaces like java. More advanced concepts like pointers and memory management like c++.
I was originally going to write my own compiler but I figured it's not worth reinventing the wheel. So the current plan is to basically just create a parser that turns a source file into c++ code and then that is compiled with g++. The only problem I can think of with that is catching runtime errors.
How does this language sound?
My purpose is to have a language that is as easy to read as python but with the speed of a compiled program and the ability to use it for embedded projects. I feel like reading larger C++ projects can be quite time consuming. So I figure the trade off of taking a little longer to write the code to make it more obvious what is going on is better than having a lot of syntax that can be tough to walk though the logic of (I find this often with c and c++, not like I don't figure it out but It definitely takes longer than it does to read and understand python)4 -
C is love, C is life.
Great language.
I genuinely don't get why so many people are struggling with pointers, considering it's a pretty straightforward concept. I understand that they can be complex in simplicity, but the concept itself is much easier to understand than say, references in OOP languages(despite being the same thing under the hood).
I mean it's just a number like any other number, except that number is treated as a memory address, and the star(* - dereference operator) just takes a value, goes to the memory address that is the value, and takes a value from there.
I feel like most explanations and tutorials just try to over complicate it for no reason.27 -
After getting fed up of “being productive” I fooled around on GitHub and had a look at the Stuxnet virus source code which was obtained using a decompiler. Experts who reverse-engineered it found out that it was written in “object-oriented C.” While C is not an object oriented language, anything you can do with classes you can do with structs, static functions, pointers & function pointers. You can see this coding style in the Linux kernel, CPython interpreter and many other places. That was the first indication that a government agency or defence industry was responsible. Amazing stuff !6
-
My first real programming teacher. She showed us strings, then made us use dynamic arrays in C++ for a year and a half. But we learned pointers and arrays very well!
The hard way can be the best way for education. -
I am very thankful to C as I face less pain while dealing with pointers and memory allocation and deallocation in C++. I am very thankful to C++, as I grasp OOP and template concepts out of it and it was also my first language for DSAlgo implementation. I feel very fortunate to move to Java after C++ rather than python. Although Java's design is f**ked and it feeds on a computer's memory, it taught me to deal with objects( unlike C++). It taught me how objects are clearly different than primitive data types like int, float, char...And best of all, Java provided me everything I need to safely switch to Python, it's all because of Java, I can clearly understand the working of python. All the stuff which I find weird in python before is sounding logical to me now. As java taught me how to deal with objects, I am confident to say that "I CAN DEAL WITH PYTHON". With respect to all my 3 prior languages: C, C++, and Java.2
-
C/C++ considers pointers to be declared next to the variable name rather than the type name (int *x, *y vs int* x, y).
I know this but I still consider * to be more associated with the type. Therefore I'm one of those people who declare each variable in its own line and group the type and * together. (int* x; int* y)5 -
Damn lots of you knew this shit before turning of age.
I didn't code a single line until I went to college.
I tried to, but it was just too fucking complicated and I didn't understand a thing. Tried to grasp how to use some tools like Unity or an Adventure Maker of sorts and something called Flix for Flash games. Didn't understand shit.
I decided to study systems engineering due to a career aptitude test I took hoping somehow that way I could learn sthg.
First thing I was taught was bash.
When I realised I already knew enough to code a whole text adventure from scratch with such a simple language I felt really hyped.
Always loved text and graphic adventures.
Afterwards I was taught the Z80 assembly language and how CPU registers worked and it blew my fucking mind.
That was the first half-year.
Then I was taught C. And boy was it hard. Didn't get how memory was being handled until the very end.
I happened to be one of the few passing a stupidly complicated semifinal test with triple indirection pointers.
That felt goood.
Learning other languages afterwards was a piece of cake. C#, Java, X86 assembly, C++...
It was a hard door to open. Fucking heavy. But now nothing seems black magic anymore and boy isn't that something to be proud of! :D -
During my small tenure as the lead mobile developer for a logistics company I had to manage my stacks between native Android applications in Java and native apps in IOS.
Back then, swift was barely coming into version 3 and as such the transition was not trustworthy enough for me to discard Obj C. So I went with Obj C and kept my knowledge of Swift in the back. It was not difficult since I had always liked Obj C for some reason. The language was what made me click with pointers and understand them well enough to feel more comfortable with C as it was a strict superset from said language. It was enjoyable really and making apps for IOS made me appreciate the ecosystem that much better and realize the level of dedication that the engineering team at Apple used for their compilation protocols. It was my first exposure to ARC(Automatic Reference Counting) as a "form" of garbage collection per se. The tooling in particular was nice, normally with xcode you have a 50/50 chance of it being great or shit. For me it was a mixture of both really, but the number of crashes or unexpected behavior was FAR lesser than what I had in Android back when we still used eclipse and even when we started to use Android Studio.
Developing IOS apps was also what made me see why IOS apps have that distinctive shine and why their phones required less memory(RAM). It was a pleasant experience.
The whole ordeal also left me with a bad taste for Android development. Don't get me wrong, I love my Android phones. But I firmly believe that unless you pay top dollar for an android manufacturer such as Samsung, motorla or lg then you will have lag galore. And man.....everyone that would try to prove me wrong always had to make excuses later on(no, your $200_$300 dllr android device just didn't cut it my dude)
It really sucks sometimes for Android development. I want to know what Google got so wrong that they made the decisions they made in order to make people design other tools such as React Native, Cordova, Ionic, phonegapp, titanium, xamarin(which is shit imo) codename one and many others. With IOS i never considered going for something different than Native since the API just seemed so well designed and far superior to me from an architectural point of view.
Fast forward to 2018(almost 2019) adn Google had talks about flutter for a while and how they make it seem that they are fixing how they want people to design apps.
You see. I firmly believe that tech stacks work in 2 ways:
1 people love a stack so much they start to develop cool ADDITIONS to it(see the awesomeios repo) to expand on the standard libraries
2 people start to FIX a stack because the implementation is broken, lacking in functionality, hard to use by itself: see okhttp, legit all the Square libs, butterknife etc etc etc and etc
From this I can conclude 2 things: people love developing for IOS because the ecosystem is nice and dev friendly, and people like to develop for Android in spite of how Google manages their API. Seriously Android is a great OS and having apps that work awesomely in spite of how hard it is to create applications for said platform just shows a level of love and dedication that is unmatched.
This is why I find it hard, and even mean to call out on one product over the other. Despite the morals behind the 2 leading companies inferred from my post, the develpers are what makes the situation better or worse.
So just fuck it and develop and use for what you want.
Honorific mention to PHP and the php developer community which is a mixture of fixing and adding in spite of the ammount of hatred that such coolness gets from a lot of peeps :P
Oh and I got a couple of mobile contracts in the way, this is why I made this post.
And I still hate developing for Android even though I love Java.3 -
Built the most generic file importer.
So a customer had his SAP system giving us some 5 million barcodes in a csv which we needed to parse. But as there could be different file types and I thought the handling would always include the same steps I made them configurable through function pointers. - Did not want to make it as spooky as the rest of the code base where the function pointers were buried deep in some shared memory configs, which might even change at run time, but rather I statically used the member functions of my class. Just to poke fun on the ugly C++ syntax of member function pointers. I still shudder at the thought some poor soul now has to maintain that code.
(For the actual parsing I actually used a one liner in awk which was churning through the records in one minute which was faster than the SAP guys seemed to be accustomed to.) -
so recently i have been through memory management hell. maybe i should rethink about pointers and stuff.
long story short: i have done a calendar app using SDL2 and the program is written in C++. when rendering textures using fonts i referenced null pointers to the font.
i will implement events in the future and if you have any suggestions or some advice leave it in the comments, the feedback helps me a lot!
anyways you might give it a try (i am sorry about the makefile not working, i built the app on windows and needed to link against the folder where sdl is located): https://github.com/zetef/calviewer3 -
The crazy shenanigans you can do with C++ standard libs are fascinating.
Like implementig multithreading with just a foreach, and bindings which can make member function pointers to simple function pointers, and placeholders in bindings. Also lambda functions are cool.
Something between the lines:
my_crazy_class *tmp = new my_crazy_class(...);
std::vector<type> my_array = .....;
std::for_each(std::execution::par,my_array.begin(),my_array.end(),
[&](type in){
auto fn = std::bind( &my_crazy_class::my_crazy_fnc,*tmp,_1,random_static_value);
return fn(in);
});
ps:
It's pretty much pseudocode, and please don't do things like this, it's bad for your mental health.
pps:
I need to learn how to use this tools wisely. -
So I thought I had a basic, high level understanding of C++ STL strings, pointers, copy constructors and stuff. In comes a dirname, a -D_GLIBCXX_USE_CXX11_ABI=0 and... Toto, I've a feeling we're not in Kansas anymore.
So what is happening? I copy a string expecting a deep copy, but then I do the dirname or manipulation on the copy and it messes up *both* strings. gcc/C++ I know you're a beast, but what's going on there? Thing is only possible if I cast away const from c_str - which of course is a doubtful operation - but there also seems to be some strange copy on write logic that the data pointers initially point to same memory location and only with first manipulation on the copy they start to point to different addresses.
I had no clue. And still don't have.4 -
We have a C++ for embedded systems training at work this week.
References are a good thing but after looking for the reason why one object has no reference to the other for half of an hour just to realise that my member wasn't a reference so that i got an copy gave me the urge to use pointers instead. But unfortunately we'd to use a reference in this simple exercise which cost me a lot of time because that damn reference.2 -
Why do you have to use pointers in C++? Why doesn't C++ have a good garbage collector? Surely it has to be more advanced than C it has two more +s.....2
-
Ummm, maybe it's a little bit offtopic but could anyone help me with pointers in C language? The best would be some free exercises or tutorials from the internet that I didn't find...(I was looking for a long time before this desperate post...:/)
If it does not belong here, pls, let me know and I will delete this post!
Thank you so much :)
(Ps: I will have a big exam on Tuesday so I want to practice..)12 -
I've recently had an exam, a C++ exam that was about sorting, pointers, etc... The usual. The exam was about Huffman's
optimization algorithm along with some pointer problems. He asked for a function to find something in a stack, what I did was write down a class that has a constructor, deconstructor, SetSize(), Add(), Remove(), Lenght(), etc.. He didn't give me any points for that, why? Because I didn't write down everything like in his book... I had classmates that literally had phones open with his book, he just watched how they copied code and gave them 10/10 points. But nothing to the guy that wrote down 20 pages of code. YES!! On paper, an IT university that asks you to program on a fucking paper. Good thing that at the very least I passed.
TL;DR
Teacher has book, I refuse to remember code from it/copy from it, I get lower grades than people that literally copied word for word.
Life is really fair. -
Since most of you are working in IT , Communication and related fields, what advice can you give to a student like me who has just began studying Computer Science Engineering ...I mean how should I began, what to do next and get myself placed in a good company.
Talking about myself I have started learning C language and have learnt about basics, pointers, memory allocation, not yet started with data structures and algorithms
I have just done HTML and basic CSS , have understanding of MySQL and know a little bit about flask and Jinja framework in python.
If you could share your experiences, like what you felt at this stage what you do and how you do....how you got placed...what should I do different to cope with the growing competition....
Look I know this place is not for this bullshit but.... my seniors are egocentric bastards, my batchmates don't give a shit about CS , and being a student of tier-3 state government college in India, professors don't care......so I really appreciate if you guys can come forward, and especially Indian guys.4 -
Fuck VS! C# sucks! F# sucks!
I found no way to debug C # and F # without VS(At least the official did not give a plan)! And I can only use macOS now.
After downloading VS for mac, I found that it installed mono automatically! And there is not even a button to open the folder!
Why do you have to wrap a class outside the main function? And their pointers are not flexible at all! Also, unlike C, Go, and Rust, the compiled files are binary files. WTF does DotNet give me? debug directories and .dll files!
I originally planned to learn DotNet core for the convenience of using Azure.
But I found that, through Python, JavaScript, Ruby, C(LLVM-Clang), Go, C ++, Rust, Haskell, Azure can also be used, which gives me more sufficient reasons to give up C #, F #!14 -
My destructor accidentally modifies some other object wtf !? I made sure to use const keyword to prevent modification and also dynamically allocated data using the new keyword.5
-
figured out why i'm at home with machine code or Python but can't for the life of me do something in the middle like C: if i'm forced to use pointers, but can't manually pick an address something's made at, my mind can't deal with it.8
-
🤪😳😅 this is how i feel about the fact that i will be primarily writing c# at my new job. Any .NET guys with a few tips and pointers on how not to fail. Last time i wrote c# was 7 years ago at least. I will be working on some big project which i love being a part of but I can’t help but feel scared. What if i fail?2
-
any advice/suggestions to intensively brush up on modern C++ and multithreading for an interview that will likely be technical and cover bases like algorithms, data structures, etc?
I haven’t done c++ for awhile since a few courses in college - I did parallel programming and GPGPU on the side, but nothing on a professional level.
I’ve been mostly doing front web dev since I got out of school and C#, so I’ve been more on design/higher level of abstraction in dev and if I am asked things about pointers, memory allocations, etc I would probably draw a blank but I am motivated to no life it hard for the next week to catch up again.3 -
Why on earth can one perform calculations on pointers in c++? I can think of a dozen ways this could go wrong, but none where this is useful.
Following example:
int t = 1234;
int tt = 5555;
int* p = &t;
int* pp = *(p + 1):
Here pp will give me 5555...5 -
hey devos, I got a question to ask ya'll. I have an interview tomorrow with an MNC.
I was hovering through some leetcode problems when I came across a hard question that is forcing me to use a hashmap with the key of the user-defined type. I made up my mind to make use of C++ for the coding interview. Now, the problem is C++ asks me to implement a hash function.
If in case, I'm asked a similar question like this in the interview, which of these two options will you suggest:
a) implement your own hash function
b) use pointers as key2