[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y ] [Search | Free Show | Home]

C++, Pointers and Segfaults

This is a blue board which means that it's for everybody (Safe For Work content only). If you see any adult content, please report it.

Thread replies: 4
Thread images: 1

File: file.png (10KB, 423x101px) Image search: [Google]
file.png
10KB, 423x101px
So I'm making a game and its getting quite elaborate now, but I have a small problem.

On windows, the code in the picture (linked at end of post) functions just fine: If there's a reference to the map, use it. If not, attempt to get it and then hopefully it'll be fixed on the next frame.

However, when compiling this with the GCC compiler on GNU Linux, this causes a segfault. It is when ANY of the functions called on the _map pointer are attempted, not just this one. A fix for this problem is getting the map reference every frame and then using it, but obviously this is wasteful. Are there any additional checks I can do on the _map pointer to ensure that it is functional?

Thanks
>>
>>343538
>>343538
if(whatever) just means "if whatever isn't zero, do this:".

It's not testing if it's a valid object, it's just testing if it's zero or not.

If null has been assigned to it, the standard says it's equal to zero, but if nothing has ever been assigned to it at all, your code is basically equivalent to if(rand()) {_map-->snapToMap..... .

Either use calloc, or explicitly zero your pointer array.
>>
>>343552
Oh right! Thankyou! So I should specifically set the pointer to NULL if this is to work as intended?

It is after all, only the first iteration of this call that fails, but its ensuring that it does detect it is NULL that is important.

I'll look into calloc as well, thanks
>>
>>343538
Obvious advice here, but make sure you're using g++; gcc is only a C compiler. (I'm aware GCC is more than gcc, g++, etc)
Thread posts: 4
Thread images: 1


[Boards: 3 / a / aco / adv / an / asp / b / bant / biz / c / can / cgl / ck / cm / co / cock / d / diy / e / fa / fap / fit / fitlit / g / gd / gif / h / hc / his / hm / hr / i / ic / int / jp / k / lgbt / lit / m / mlp / mlpol / mo / mtv / mu / n / news / o / out / outsoc / p / po / pol / qa / qst / r / r9k / s / s4s / sci / soc / sp / spa / t / tg / toy / trash / trv / tv / u / v / vg / vint / vip / vp / vr / w / wg / wsg / wsr / x / y] [Search | Top | Home]

I'm aware that Imgur.com will stop allowing adult images since 15th of May. I'm taking actions to backup as much data as possible.
Read more on this topic here - https://archived.moe/talk/thread/1694/


If you need a post removed click on it's [Report] button and follow the instruction.
DMCA Content Takedown via dmca.com
All images are hosted on imgur.com.
If you like this website please support us by donating with Bitcoins at 16mKtbZiwW52BLkibtCr8jUg2KVUMTxVQ5
All trademarks and copyrights on this page are owned by their respective parties.
Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.
This is a 4chan archive - all of the content originated from that site.
This means that RandomArchive shows their content, archived.
If you need information for a Poster - contact them.