You need to initialize your pointers. Alternatively, use stack-allocated arrays.
For example, instead of char *name
, do char name[20]
. (Note that this will limit your input to 19 characters; use a larger buffer if necessary.)
Right now, you are passing uninitialized pointers into scanf()
which effectively means that scanf()
is going to write to an undefined area of memory. It might work on one execution and then fail on the next. It might corrupt memory elsewhere in the process’ address space.
Don’t use uninitialized variables, and consider turning up your compiler warnings as high as they will go; the compiler can catch errors like this and emit a warning.
Related Posts:
- What causes a segmentation fault (core dump) to occur in C?
- segmentation fault : 11
- segmentation fault : 11
- What is a bus error? Is it different from a segmentation fault?
- What is a bus error? Is it different from a segmentation fault?
- Execution of printf() and Segmentation Fault
- Segmentation fault- strcat
- segmentation fault with strcpy [duplicate]
- How big can a 64 bit unsigned integer be?
- How to use execvp()
- How to use execvp() to execute a command
- How does strtok() split the string into tokens in C?
- What is *(uint32_t*)?
- what is Segmentation fault (core dumped)? [duplicate]
- How to convert an int to string in C?
- How to print in C
- Why should we typedef a struct so often in C?
- What is a string of hexadecimal digits?
- What is newline character — ‘\n’
- Why does ENOENT mean “No such file or directory”?
- What does the question mark character (‘?’) mean?
- makefile:4: *** missing separator. Stop
- Stack smashing detected
- How do I determine the size of my array in C?
- What is the difference between C and embedded C?
- Undefined reference to pthread_create
- Difference between malloc and calloc?
- What is Bit Masking?
- How do function pointers in C work?
- What are .a and .so files?
- So what does “return 0” actually mean?
- warning: assignment makes integer from pointer without a cast
- Why use bzero over memset?
- what is the meaning of == sign?
- How do I use extern to share variables between source files?
- Cannot assign requested address – possible causes?
- ARM Assembler – How do I use CMP, BLT and BGT?
- In C programming, what is `undefined reference`error, when compiling?
- Invalid read of size 8 – Valgrind + C
- error: called object is not a function or function pointer
- munmap_chunk(): invalid pointer
- warning: incompatible implicit declaration of built-in function ‘xyz’
- strcpy vs strdup
- Warning comparison between pointer and integer in C language
- No Symbol Table using GDB on Compiled Programs
- What is char ** in C?
- Difference between scanf() and fgets()
- Return char[]/string from a function [duplicate]
- Is there a printf converter to print in binary format?
- Difference between char* and const char*?
- Output single character in C
- Get the current time in C
- Does connect() block for TCP socket?
- Converting a C program to MIPS
- C: linker command failed with exit code 1
- #31 expression must have integral type
- How do you pass a function as a parameter in C?
- What’s the equivalent of new/delete of C++ in C?
- sizeof float (3.0) vs (3.0f)
- Get text from user input using C
- How to trigger SIGUSR1 and SIGUSR2?
- How do I lowercase a string in C?
- warning: expression result unused
- error: indirection requires pointer operand (‘int’ invalid)
- What is the difference between exit(0) and exit(1) in C?
- What does “%.*s” mean in printf?
- Display value found at given address gdb
- Array definition – Expression must have a constant value
- How to print a char array in C through printf?
- How to clear all the elements of array in C?
- Constant pointer vs Pointer to constant
- What is the cause of flexible array member not at end of struct error?
- Variable warning set but not used
- Expected declaration specifier error in function
- How can I get argv[] as int?
- strcmp not working
- C char* to int conversion
- error: aggregate value used where an integer was expected
- char pointers: invalid conversion from ‘char*’ to ‘char’?
- Does C have a string type?
- What are .axf files?
- printf format specifiers for uint32_t and size_t
- error: function returns address of local variable
- What is an simple example of copy_from_user
- What is `S_ISREG()`, and what does it do?
- typedef struct pointer definition
- Math constant PI value in C
- Return a `struct` from a function in C
- C: scanf to array
- The code does not execute properly. Try to figure out why
- What are “prototypes” in a C program?
- ld.exe: cannot open output file … : Permission denied
- How to read from input until newline is found using scanf()?
- What’s the difference between “mod” and “remainder”?
- What is char ** in C? [duplicate]
- undefined reference to `std::ios_base::Init::Init()’
- previous declaration of ‘function’ was here in C [duplicate]
- strtok segmentation fault
- How to Compare 2 Character Arrays [duplicate]
- error: `itoa` was not declared in this scope