[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]

Strange error in a shitty easy C program

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: 11
Thread images: 1

File: superthumb.jpg (21KB, 300x250px) Image search: [Google]
superthumb.jpg
21KB, 300x250px
Hi /a/nons, I was trying to test something in Git Bash on Windows (which seems to have GCC) and the following C code gives me segfault:
#include <stdio.h>

void prueba(int* a)
{
int num = *a;
printf("Number is %d\n", num);
}

int main()
{
int* t;
*t = 6;
prueba(t);
}

any ideas why?
>>
bupm
>>
jajajajaja
>>
>>60516825
ajajajajajjajajajjajaja /a/nons get the FUCK out
>>
In main(), t is an uninitialized pointer. It points to some random area of memory. Try the following main() instead:

int *t;
int pointed_to;
t = &pointed_to;
*t = 6;
prueba(t);
>>
>>60516906
it works now, what a foolish error lol, thank anon!
>>
>>60516825
Maybe you should alloc the memory before using it.

int* t = malloc(sizeof(int));
>>
>>60516906
>>60517001
This.
And also if you used -Wall option with GCC it would inform you that:
test.c: In function ‘main’:
test.c:12:5: warning: ‘t’ is used uninitialized in this function [-Wuninitialized]
*t = 6;
~~~^~~
>>
yes
c leaks memory
use rust instead :)
rust is the true anime language so its the best desuyo katakaradane senpai
>>
>>60516825
>int* t;
>*t = 6;
Because you're writing in the memory address referenced from a pointer, t, which you never initialized. Allocate some sizeof(int) first.
>>
>>60516825
do this señor
#include <stdio.h>

prueba ( a )
int *a;
{
printf ("%d\n", *a);
}

main (void)
{
int t = 6;
prueba (&t);
}
Thread posts: 11
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.