answersLogoWhite

0


Best Answer

A Null pointer has the value 0. void pointer is a generic pointer introduced by ANSI. Before ANSI, char pointers are used as generic pointer. Generic pointer can hold the address of any data type.

Pointers point to a memory address, and data can be stored at

that address.

User Avatar

Wiki User

14y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Difference between void pointer and null pointer?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Computer Science

What is the use of void pointer?

Void Pointer is a General purpose pointer ,that does not have any data type associated with it and can store address of any type of variable. Declaration: void * pointer_name;


Suggestions for mini project in data structures using c?

1. Define a structure? A. A structure is a set of variables positioned under one name, offering a suitable means of relevant information together. Declaration of structure creates a template which can be used to produce structure objects that are called as its instances. The variables which form the structure are called as members, also referred as fields or elements. 2. Define a pointer? A. A pointer is nothing but a reference to some memory location. As a computer has billions or may be even trillions of cells, every cell can be filled with some data. With the help of pointers, one can know and access the value of its memory cell and its location. 3. What are the advantages of a pointer? A. Dynamic Memory Allocation, Passing structures and array to functions, creating data structures like linked lists, trees and so on, and passing addresses to functions. 4. Define static variable? A. A special variable which is stored in the data segment not like the default auto variable that is stored in stack, is called static variable. It can be initialized through using keyword static before variable name. 5. How are structure passing and returning implemented? A. When you pass structures as arguments to functions, the whole structure is usually pushed on the stack, through as several words as are needed. To avoid this overhead, programmers usually opt to use pointers to structures instead. Some compilers simply pass a pointer to the structure, even though they have to produce a local copy to save pass-by-value semantics. Structures are usually returned from functions in a position pointed to by an additional, compiler-supplied hidden argument to the function. Few older compilers used to use unique, static locations for structure returns, though this made structure-valued functions non-reentrant that ANSI C disapproves. 6. Why can't we compare structures? A. We do not have one or fine way for a compiler to apply structure evaluation that is constant with lower level flavor of C. A plain byte-by-bye comparison could be found on random bits available in unused 'holes' in the structure; such filling is used to maintain the arrangement of following fields accurate. A field-by-field assessment may require improper amounts of recurring code for larger structures. 7. Why doesn't struct x { … };x thestruct; work? A. C is not similar to C++. Typedef names are not automatically produced for structure tags 8. Why doesn't this code: a[i] = i++; work? A. The subexpression i++ creates a side effect. It changes i's value which directs to undefined behavior as i as well is referenced somewhere else in the same expression 9. Can we initialize unions? A. ANSI C permits an initializer for the foremost member of a union. We do not have any standard method of initializing other members (there is no way even under a pre-ANSI compiler to initialize a unionl) 10. Can main () be called recursively? A. Yes, any function that has main() could be called recurrently. 11. Are the variables argc and argv are always local to main? A. Yes, argc and argv are local to main 12. What would be the similar pointer expression for referring the equivalent element as a[p][q][r][s]? A. *( * ( * ( * (a+p) + q ) + r ) + s) 13. Are the expressions *ptr ++ and ++ *ptr same? A. No. *ptr++ increments pointer, not the value pointed by it. Where as ++*ptr increments the value being pointed to by ptr. 14. What are the benefits of using array of pointers to string instead of an array of strings? A. (i) Effective usage of memory (ii) Simpler to swap the strings through moving their pointers when sorting 15. Discuss on pointer arithmetic? A. (i) Assigning pointers to the similar kind of pointers (ii) Subtracting or adding a pointer and an integer (iii) comparing and subtracting two pointers (iv) Decrementing or incrementing the pointer that are pointing to the elements of an array while a pointer to an integer is added by one, the address is added by two. The Compiler does this automatically. Assiging value 0 to the pointer variable and comparing it with the pointer. Pointer consisting 0 points to nothing at all 16. What is the invalid pointer arithmetic? A. (i) Adding, dividing and multiplying two pointers (ii) Adding double or float to pointer (iii) Masking or shifting pointer (iv) Assigning a pointer of one type to another type of pointer. 17. Is the allocated space within a function automatically deallocated when the function returns? A. None of the pointers are similar to that of what they actually point to. Local variables like local pointer variables in a function are automatically deallocated if function returns. However, coming to a local pointer variable, deallocation is nothing but the pointer being deallocated and not blocking of memory allocated to it. Memory that is allocated dynamically always continues till the program terminates or allocation is freed. 18. What are the pointer declarations used in C? A. (i) Pointers to an array (ii) Array of pointers (iii) Pointer to a data type (iv) Pointer to a pointer (v) Function returning a pointer 19. Can we use any name in place of argv and argc as command line arguments? A. Yes. We can certainly use any user defined name instead of argc and argv. 20. Difference between an array of pointers and a pointer to an array? A. Array of pointers (i) Declaration - data type *array_name[size] (ii) Size indicates size of the row (iii) The space for columns may be dynamically allocated Pointer of Arrays (i) Declaration - data_type (*array_name)[size] (ii) Size indicates size of the column 21. Difference between an array name and a pointer variable? A. A pointer variable is a variable while an array name is not a variable but is a fixed address. Unlike a pointer variable, array name cannot be initialized. An array name being a constant value, - and ++ operators can not be applied to it. 22. What is the purpose of rewind()? A. The rewind() function is used to get the file pointer to the starting of the file. Rewind (fp); Fp is a file pointer. And we can get similar effect through feek(fp,0,0); 23. What is the purpose of ftell? A. The ftell() function is used to get the current file referred by the file pointer. ftell(fp); returns a long integer value referring the current location of the file pointed by the file pointer fp. If any error occurs, it will return -1. 24. What is a random access file? A. A file can be accessed at random through function fseek(), fseek(fp,position,origin); file pointer number file pointer fp positions number of bytes offset origin from 0, 1 or 2 denoting the starting, current or end position of the file respectively. 25. How is fopen()used? A. The fopen() function return a file pointer. So a file pointer is declared and is assigned as FILE *fp; fp=fopen(filename,mode); 26. How is a file closed? A. A file is closed using fclose() function 27. What is a file pointer? A. The pointer to a FILE data type is known as a file pointer or a stream pointer. This pointer points to the block of information of the stream/file that had just been accessed. 28. What is a stream? A. A stream is nothing but source of destination of data or simply data that is associated with a hard disk or other input/output device. The source stream that offers data to a program is known as input stream and the source stream that receives the result from the program is known as output stream. 29. What is meant by file opening? A. The process of connecting a program to a file is known as file opening. It needs I/O stream creation in advance to writing or reading the data. 30. What exactly is a file? A. A file is an area of storage in auxiliary storage devices or in hard disks. It includes information in bytes. 31. What are the types of files? A. Files are of two types 1-high level files (stream oriented files) - These are accessed through library functions 2-low level files (system oriented files) - These are accessed through system calls 32. What is the difference between the functions memmove() and memcpy()? A. The arguments of memmove() can overlie in memory, while the arguments of memcpy() cannot 33. What do the functions atoi(), itoa() and gcvt() do? A. atoi() is a macro that converts integer to character. itoa() It converts an integer to string gcvt() It converts a floating point number to string 34. How would you use the functions randomize() and random()? A. Randomize() initiates random number generation with a random value. Random() generates random number between 0 and n-1 35. What are the two forms of #include directive? A. 1. #include"filename" 2. #include 36. What are the facilities provided by preprocessor? A. File inclusion, substitution facility and conditional compilation 37. What is a preprocessor? What are the advantages of preprocessor? A. Preprocessor practices the source code program before it is sent through the compiler. (i) It includes the readability of a program (ii) It helps in easier modification (iii) It facilitates writing convenient programs (iv) It helps in easier debugging (v) It helps in testing a portion of program (vi) It enables implementing comprehensive program 38. Define bit fields? Point out their uses in Structure declaration? A. A bit field is a group of adjoining bits in a one execution based on storage unit which we call as a "word". Usually, the field definition's syntax and access is based on a structure. Struct { unsigned int k :1; unsigned int l :1; unsigned int m :1; }flags; The number that is preceeding the colon indicates the field width. And flag is a variable that includes 3 bit fields. 39. What is the maximum combined length of command line arguments including the space between adjacent arguments? A. It depends on the operating system 40. Compose a program to swap two variables without the help of third variable. A. a^=b; b^=a; a^=b; In the above program, the numbers are converted into binary numbers and then xor operator is executed. 41. What is pre-increment and post-increment? A. ++num (pre-increment) increases value of num before it is used in the expression, where num++ (post-increment) increases the num after its value is used. 42. Difference between logical vs syntax errors? A. Logical error: It occurs by a wrong algorithm or a mistyped statement in such a way that it does not violate the syntax, and these are difficult to find. Syntax error: It involves syntax validation, and compiler prints diagnostic message. Ex: a=b 43. What are C identifiers? A. C identifiers are the names given to different programming elements like arrays, functions and variables. It is usually a combination of a letter, a digit and an underscore. It should start with a letter, and backspace is not allowed. 44. What are C tokens? A. There are 6 classes of C tokens - keywords, constants, identifier, operators, string literals and other separators. 45. What do the 'c' and 'v' in argc and argv stand for? A. The c in argument count, argc stands for the number of the command line argument that the program is invoked with. And v in argument vector, argv is a pointer to an array of the character string that contains the argument. 46. Difference between array and pointer? A. Array: (i) Arrays allocate space, automatically (ii) They can not be reassigned (iii) They can not be resized (iv) sizeof (arrayname) returns the number of bytes occupied by the array. Pointer: (i) Assigned explicitly to point an allocated space. (ii) It can be reassigned (iii) It can be resized using realloc() function (iv) sizeof (p) gives the number of bytes used to store the pointer variable p. 47. Compose a program using Command Line Arguments? A. #include void main(int argc,char *argv[]) { int i; clrscr(); for(i=0;i printf("\n%d",argv[i]); } 48. Write a program which employs Recursion? A. int fact(int n) { return n > 1 ? n * fact(n - 1) : 1; } 49. How can we read/write Structures from/to data files? A. To compose a structure fwrite() can be used as Fwrite(&e, sizeof(e),1,fp); Here, e is a structure variable. A consequent fread() invocation will be able to read the structure back from file. Calling function fwrite() will write out sizeof(e) byte from the address & e. Data files that are written as memory images with function fwrite(), but will not be portable, especially if they include floating point fields or pointers. It is because structures' memory layout is compiler and machine dependent. Hence, structures written as memory are not need to be read back by programs running on other machine, also this is an important factor if the data files that you are writing will ever be exchanged between machines. 50. Can a Structure contain a Pointer to itself? A. Yes such structures are called self-referential structures. Other Questions What is the similarity between a Structure, Union and enumeration? How are Structure passing and returning implemented by the complier? What is the difference between an enumeration and a set of pre-processor # defines? Is it possible to have more than one main() function in a C program? Difference between formal argument and actual argument? What are built in functions? What is an argument? What is a function? What modular programming? Why is it necessary to give the size of an array in an array declaration? Is it possible to have negative index in an array? Difference between linker and linkage? What is an array of pointers? What is pointer to a pointer? What is the purpose of realloc? What is dynamic memory allocation? What is static memory allocation? How pointer variables are initialized? Are the expressions arr and &arr same for an array of integers? What is generic pointer in C? What does the error 'Null Pointer Assignment' means and what causes this error? Are pointers integer? What is a NULL Pointer? Whether it is same as an uninitialized pointer? In C, why is the void pointer useful? When would you use it? What is near pointer? What is a normalized pointer, how do we normalize a pointer? What is a huge pointer? What is a far pointer? Where do we use it? What is the difference between Strings and Arrays? What the advantages of using Unions? What is storage class? What are the different storage classes in C? Differentiate between a for loop and a while loop? What are it uses? What is recursion? Difference between strdup and strcpy? Out of fgets() and gets() which function is safe to use and why? Can we specify variable field width in a scanf() What is the use of typedef? What are register variables? What are the advantages Describe about storage allocation and scope of


Abstract syntax tree implementation in C language?

This is a sample implementation of a binary tree which does inserting nodes, searching in the tree for a specific node and deleting the tree#includetypedef struct bnode BinTree;struct bnode {char name[20];int count;BinTree *left;BinTree *right;};BinTree* InsertBinTree ( BinTree*, char* );BinTree* SearchBinTree ( BinTree*, char* );BinTree* DeleteInBinTree ( BinTree*, char* );void DisplayBinTree ( BinTree* );int main (){char ans, tmp, name[20];BinTree *root = NULL;printf ("\nInserting nodes...\n");do {printf ("Type the name of the node to insert: ");scanf ("c", name, &tmp);root = InsertBinTree(root, name);printf ("Another one (Y/N)? ");scanf("c", &ans, &tmp);} while (ans NULL )return NULL;while ( root->left != NULL )root = root->left;return root;}


Why is understanding the warranty on notebooks so important?

so you don't void the warranty


C code for sliding window protocol?

#include<stdio.h> #include<conio.h> void main() { char sender[50],receiver[50]; int i,winsize; clrscr(); printf("\n ENTER THE WINDOWS SIZE : "); scanf("%d",&winsize); printf("\n SENDER WINDOW IS EXPANDED TO STORE MESSAGE OR WINDOW \n"); printf("\n ENTER THE DATA TO BE SENT: "); fflush(stdin); gets(sender); for(i=0;i<winsize;i++) receiver[i]=sender[i]; receiver[i]=NULL; printf("\n MESSAGE SEND BY THE SENDER:\n"); puts(sender); printf("\n WINDOW SIZE OF RECEIVER IS EXPANDED\n"); printf("\n ACKNOWLEDGEMENT FROM RECEIVER \n"); for(i=0;i<winsize;i++); printf("\n ACK:%d",i); printf("\n MESSAGE RECEIVED BY RECEIVER IS : "); puts(receiver); printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n"); getch(); }

Related questions

How will you declare null pointer in C?

#define NULL ((void *)0) /* defined in <stddef.h> */ const char *mynullvar = NULL;


Difference between genric pointer and normal pointer?

Generic pointer of type 'void *' is compatible with any (data-)pointer, but you cannot use the following operators on it: + - ++ -- += -= * -> []


What is the difference between null and void pointers?

A void pointer is a pointer that has no type information attached to it.A null pointer is a pointer that points to "nothing". A null pointer can be of any type (void included, of course).


What is the size of null pointer?

A NULL pointer has the same size as a non NULL pointer. NULL means that the pointer has been set to the NULL value that is usually zero (0) but the NULL value is at the digression of the compiler manufacture (and may have a value other than zero) so a pointer should always be set to the NULL value and not zero. Current compilers (32 and 64 bit, Intel chip) have a pointer size of 4 (8 bit) bytes. It should be noted that the number of bits in any data type is at the compiler manufactures digression but is heavily influenced by the computer hardware. void *p= NULL; printf ("%d\n", sizeof (p)); or printf ("%d\n", sizeof (void *));


Solution to null pointer assignment error?

Answer#ifndef NULL# define NULL ((void*)0)#endifAnswerDon't use pointers that contain NULL-value. Eg:int *myptr= NULL;...*myptr = 32; /* wrong */


Different types of pointers in c language?

... are usable. void pointer (generic pointer) : a special type of pointer which point to some data of no specific types. void *p; null pointer : a special type of pointer which point nowhere. it is usually used to check if a pointer is pointing to a null or free the pointer during deallocation of memory in dynamic memory allocation; it is define by using the predefine constant NULL int *p=NULL; wild pointer : uninitialized pointer. it hold a garbage value. i.e it is not pointing to any memory location yet. dangling pointer: pointer pointing to a destroyed variable. it usually happen during dynamic memory allocation when the object is destroyed but not free and the pointer is still pointing to the destroy object.


What is the difference between a null pointer and a null macro?

Using a NULL macro to make C portableI'll assume that you're asking your question for C type language programming. A NULL pointer is a pointer that's guarnteed to point to nothing. This may be 0 in a UNIX/Linux system or some other address in another system. Using the NULL macro to set/initialize your pointers will make your programs more portable among systems than using something like the 0.#include char *c = 0; // initialize to NULL--not portablechar *p = NULL; // initialize to NULL as defined in stdio is portableAddendumThe code:char *c = 0;actually is portable because the compiler converts 0's used in a pointer context (cast to a pointer) to the machine's representation of a NULL pointer, which may or may not be all 0 bits. The NULL macro itself might be defined as something like 0 or (void *)0, and both definitions are portable. As a corollary, the following code is also portable:if (!c) {// do something}because it is equivalent to:if (c != 0) {// do something}and the 0 above is converted to a NULL pointer because it is being compared with a pointer.


What are the three uses of void data types?

The void type has only one purpose: to specify the return type of a function that has no return value. In this case void simply means no type. The only other usage is when used as a pointer to void (void*), which simply means a pointer type that can refer to any type of object. If the pointer is non-null, it must be cast to a specific type before it can be dereferenced.


What is void pointer and what are its uses?

Void pointer can hold the address of any kind of pointer. But we can't operate on void pointer


What is null point?

A pointer variable which is declared but not initialized is called a NULL POINTER.ex: int *p;Please don't use the above. A NULL pointer is a specific value assigned to a pointer, just like any other value. NULL is a language-specific designation, and is guaranteed to be comparable to, unlike uninitialized variables, which can have any value.That is:int *a;int *b = NULL;int *c = (int *) malloc(sizeof(char));( a c) is NEVER true.NULL is a reserved word in most high-level languages, and indicates a specific value for assignment. It is commonly used to indicate that something has not yet been assigned a "real" value, or has had its contents deleted. It is an EXPLICIT value, and not just "undefined".In the context of pointers (which, remember, are really memory location addresses), a NULL pointer is one which has NO value, and thus does NOT point to any memory location. The difference between an uninitialized pointer and a NULL pointer is that most common languages do not specify what value an uninitialized pointer has upon creation (many, such as C, are assigned a random value), while a NULL pointer explicitly has NO value (which is the meaning of NULL).Many modern languages and compilers will assign NULL to a pointer upon initialization, but don't count on it. It is sloppy programming to do so, and can lead to many hard-to-find errors.


Why do you use a void pointer in a programme?

void is type of pointer that usually means that you can make it point to any data type. When you make a pointer point to somewhere its data type should match with the place where you want it to point. When you dont know the data type where it will point to then you can declare a void pointer and make it point to the data type it want.


How ca you legalize your null and void marriage?

You cannot "legalize" a null and void marriage. You need to get married "legally".You cannot "legalize" a null and void marriage. You need to get married "legally".You cannot "legalize" a null and void marriage. You need to get married "legally".You cannot "legalize" a null and void marriage. You need to get married "legally".