Named function pointers. View Answer, 2. Basically the type of data that it points to is can be any. A void pointer can point to a variable of any data type and void pointer can be assigned to a pointer of any type. Void Pointers & Malloc & Free Sample. b) float Original code: The *'s in the cast itself don't do anything besides tell the compiler what type of thing the void pointer is supposed to be. A void pointer can hold address of any type and can be typcasted to any type. a) methods in c++ Answers: pointer arithemetic. A void pointer can be used to point at a variable of any data type. They can be a beginner, fresher, engineering graduate or an experienced IT professional. What we can’t do on a void pointer? The outer star on the left actually tells the compiler to dereference the thing on the right. pointer arithemetic pointer functions both of the mentioned none of the mentioned. Instead what is exchanged are pointers to values. One shall practice these questions to improve their C++ programming skills needed for various interviews (campus interviews, walk-in interviews, company interviews), placements, entrance exams and other competitive exams. Void refers to the type. The content of pointer is 2.3. If you do not assume this, you are treading on thin ice. Multidimensional Pointer Arithmetic in C/C++. a) pointer arithmetic *( int* ) ( randomData + 10 ) = ( int) 323453 //323453 can be an int variable aswell Im not sure if this is the right way to do perform a dereference. Note that the above program may not work in other compilers. Attention reader! b) 6 Im not sure how to do this. a) abcdefghij View Answer, 3. a) int The void pointer in C is a pointer which is not associated with any data types. c) memory address You can't do it directly. http://stackoverflow.com/questions/20967868/should-the-compiler-warn-on-pointer-arithmetic-with-a-void-pointer View Answer. Agreed, OP's method doesn't make much sense. code, Advantages of void pointers: brightness_4 These questions can be attempted by anyone focusing on learning C++ programming language. This is an overview of what has to be done:-The pointer has to be dereferenced-Cast the pointer as an int pointer so we can change it like a normal 4-byte int This doesn't generate any code whatsoever. Answer: a Explanation: Because the void pointer is used to cast the variables only, So pointer arithmetic can’t be done in a void pointer. View Answer, 10. It's perhaps too harsh a judgement of C, but certainly oneof the reasons the language was invented was to write operatingsystems. b) no output 1) void pointers cannot be dereferenced. Unfortunately, the C++ type system is not yet aware of null-checks (A “flow” type system), so we must use our own human hearts and hands to ensure we do these checks. They cannot be directly dereferenced. References: d) all of the mentioned d) none of the mentioned Here is a listing of C++ programming questions on “Pointer to Void” along with answers, explanations and/or solutions: 1. Void pointer is also known as generic pointer in c and c++ programs. //The raw pointer is void* auto vp = std::shared_ptr (new int ()); //OK //However, we can't do much with 'vp' //Another example //Inheritance with no virtual destructor struct A {//stuff.. ~A() { std::cout << "~A\n"; } //not virtual}; struct B : A {//stuff.. ~B() { std::cout << "~B\n"; } //not virtual}; //shared_ptr managing a B object //raw pointer is A* and managed pointer is B* auto pa = std::shared_ptr(new … d) runtime error Participate in the Sanfoundry Certification contest to get free Certificate of Merit. The void pointer can point to which type of objects? d) static I was think about that void, because it can … Void Pointers. Functions that do not return a value Most commonly, void is used to indicate that a function does not return a value: Ben's Blog Blog Index Personal Website. Since we cannot dereference a void pointer, we cannot use *ptr.. By creating an API that returns and accepts smart pointers, you are introducing nullability where it is not appropriate. A void pointer cannot point to which of these? All Rights Reserved. Dereference the typed pointer to access the value. © 2011-2020 Sanfoundry. You''d have to cast the pointer to a … View Answer. Object Oriented Programming Using C++ Objective type Questions and Answers. Dereferencing a void pointer in C Using the indirection operator (*) we can get back the value which is pointed by the pointer, but in case of void pointer we cannot use the indirection operator directly. both of the mentioned. // … What we can’t do on a void pointer? pointer functions. a) equal In C, malloc () and calloc () functions return void * or generic pointers. Writing such code requires the ability to accessaddresses in memory in an efficient manner. A directory of Objective Type Questions covering all the Computer Science subjects. I'm still think about some safe conversion of that pointers and wrote little code that make some conversions using void pointer and return void from function. In below program, we have created a void pointer and assign the address of int variable. In my work as a graduate student, I build distributed data structures, and having a remote pointer abstraction is an essential tool for me to write clean, correct code. close, link Please use ide.geeksforgeeks.org, More important in C++, however, is the use of void* as a generic pointer type. void pointer is an approach towards generic functions and generic programming in C. Note: Writing programs without being constrained by data type is known as generic programming. Writing code in comment? What we can’t do on a void pointer? This is because pointer arithmetic requires the pointer to know what size object it is pointing to, so it can increment or decrement the pointer appropriately." Output. What will be the output of the following C++ code? Void pointers are useful when you … This is why pointersare such an important part of the C language. Note that we can store any data type in void pointer, but, when we want to retrieve data from void pointer then we need to type cast to the specific data type. d) runtime error One option that was explored was emitting such a pointer as mod_req(Func) void*. For example the following program compiles and runs fine in gcc. It automatically converts to and from other pointer types without needing a cast, so pointers to void are usually preferable over pointers … a) 2d what type of data is pointed to by the void pointer. b) 8.14 b) class member in c++ Noncompliant Code Example. Types, Pointers, Arrays & Structures in C++, Functions, Namespaces & Exceptions in C++, Source Files, Classes & Operator Overloading in C++, Derived Classes, Templates & Exception Handling in C++, Prev - C++ Programming Questions and Answers – References – 3, Next - C++ Programming Questions and Answers – Structures, C++ Programming Questions and Answers – References – 3, C++ Programming Questions and Answers – Structures, C Algorithms, Problems & Programming Examples, Dynamic Programming Problems and Solutions, C Programming Examples on Numerical Problems & Algorithms, C Programming Examples on Data-Structures, Java Programming Examples on Multithreading, Java Programming Examples on Exception Handling, Object Oriented Programming Questions and Answers. In C++, we must explicitly typecast return value of malloc to (int *). View Answer. d) pointer functions & objects How will the function know the type of pointer being passed and how to handle it given it comes through as a void *. Sanfoundry Global Education & Learning Series – C++ Programming Language. 8. Submit Next question -> d) using shift keyword b) two memory addresses But in the case of a void pointer we need to typecast the pointer variable to dereference it. That pointer type has valid uses, but this isn't one of them. Don’t stop learning now. Void pointer is a specific pointer type – void * – a pointer that points to some data location in storage, which doesn’t have any specific type. This program prints the value of the address pointed to by the void pointer ptr.. View Answer. It can be reused to point at any data type we want to. void pointer in C / C++. edit This section on C++ programming questions and answers focuses on “Pointer to Void”. What will be the output of the following C++ code? The keyword void is used as the return type of a function not returning a value and to indicate an empty argument list to a function. 2) void pointers in C are used to implement generic functions in C. For example compare function which is used in qsort(). Implementing a comparison function follows a similar pattern: Cast the void* argument and set a pointer of known pointee type equal to it. A void pointer is just like any other pointer, except that it does not know what type it points to. It is declared like this: void *pointerVariableName = NULL; Since they are very general in nature, they are also known as generic pointers. Experience. View Answer, 4. However, if we convert the void* pointer type to the float* type, we can use the value pointed to by the void pointer.. There is no way the compiler can know (or guess?) c) compile error What will be the output of the following C++ code? It points to some data location in the storage means points to the address of variables. We can't do arithmetic operation on void* pointer as it doesn't have information regarding the underlying object type. a) const Is it fine to write "void main()" or "main()" in C/C++? 2) The C standard doesn’t allow pointer arithmetic with void pointers. c) double It is pretty much a similar situation with dereferencing a void pointer. a) 5 void value; // won't work, variables can't be defined with a void type Void is typically used in several different contexts. Some Interesting Facts: For instance, I need to call a function which > returns a status, as follows: > > > status = EST_WriteTargetRegister (long handle, Unsign int register, > void * value) > > > How do I pass the "void * value" to the input of a Call Library > FUnction Node. In addition, because we assign a value to temp in the above code, we must know what data types first and second point to, so the compiler knows how to make the assignment. a) pointer arithmetic b) pointer functions c) pointer objects d) pointer functions & objects View Answer. Cast to appropriate pointer type and do arithmetic on it. then is static_cast conversion to needed format. Pointer to void (void *) is exactly the same as a pointer to a character type except that you’re not allowed to dereference it or do arithmetic on it. With their flexibility, void pointers also bring some constraints. b) volatile The following program compiles and runs fine. The C Standard allows any object pointer to be cast to and from void *.As a result, it is possible to silently convert from one pointer type to another without the compiler diagnosing the problem by storing or casting a pointer to void * and then storing or casting it to the final type. If you're going to master C, you need to understand pointerarithmetic, and in particular, th… d) runtime error c) both const & volatile Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. Passing by pointer Vs Passing by Reference in C++, Data Structures and Algorithms – Self Paced Course, Ad-Free Experience – GeeksforGeeks Premium, We use cookies to ensure you have the best browsing experience on our website. share | improve this answer | follow | View Answer. 9. c) using delete keyword This is a guide to C++ Void Pointer. c) compile time error c) methods & class member in c++ By using our site, you c) compile time error b) address of string “abcdefghij” November 9, 2018 Creating Expressive C++ Smart Pointers for Remote Memory. C++ void pointer is used to store the address of any other data type. Note that the above program compiles in C, but doesn’t compile in C++. When does the void pointer can be dereferenced? 6. However, in GNU C it is allowed by considering the size of void is 1. Recommended Articles. acknowledge that you have read and understood our, GATE CS Original Papers and Official Keys, ISRO CS Original Papers and Official Keys, ISRO CS Syllabus for Scientist/Engineer Exam, An Uncommon representation of array elements, Delete a Linked List node at a given position, Find Length of a Linked List (Iterative and Recursive), Search an element in a Linked List (Iterative and Recursive), Write a function to get Nth node in a Linked List, Program for n’th node from the end of a Linked List, Find the middle of a given linked list in C and Java, Write a function that counts the number of times a given int occurs in a Linked List, Add two numbers represented by linked lists | Set 1, Add two numbers represented by linked lists | Set 2, Add Two Numbers Represented by Linked Lists | Set 3, compare function which is used in qsort(), http://stackoverflow.com/questions/20967868/should-the-compiler-warn-on-pointer-arithmetic-with-a-void-pointer, http://stackoverflow.com/questions/692564/concept-of-void-pointer-in-c-programming, Find next greater number with same set of digits, Dynamic Memory Allocation in C using malloc(), calloc(), free() and realloc(), Left Shift and Right Shift Operators in C/C++, Rounding Floating Point Number To two Decimal Places in C and C++, INT_MAX and INT_MIN in C/C++ and Applications, Write Interview No output c ) memory address d ) 4d View Answer, 2 hence... 2 ) the c standard doesn ’ t do on a void pointer, can. Such a pointer that has no what we can't do on a void pointer data type with it arithmetic b ) two memory addresses )! In gcc the compiler to dereference the void pointer in c and C++ programs data! Generic instantiations: instantly share code, notes,... you can ’ t on... Thing and one thing only: store an address by anyone focusing on Learning C++ questions... Price and become industry ready this pointer to void ” pretty much a situation! Except that it does not know what type it points to there is no the... Function pointer syntax can be typcasted to any variable that is not appropriate be reused to at! Not assume this, you are treading on thin ice except that points!: 1 ) void * not appropriate make much sense what we can not to! Output c ) compile time error d ) static View Answer except that it points to the address string... Do not assume this, you are treading on thin ice '' in C/C++ nullability where it is allowed considering... A void pointer can point to any variable that is not possible to do pointer b. Points to is can be typcasted to any type was invented was to write c functions that modify pointer! Pointer that has no associated data type with it it is allowed by considering the size of is! That pointer type and can be used to point at a variable of any type, but it not. Agreed, OP 's method does n't work though as a mod_req can not to... ( or guess? ’ t do on a void pointer can point to which of these and fine... View Answer, 4 addresses c ) compile time error d ) error. Questions come with the detailed explanation of the mentioned none of the following code. Which is not appropriate without confining to data type associated with any data types bring constraints. Questions covering all the important DSA concepts with the DSA Self Paced Course at a student-friendly price become! ( int * ), except that it points to the address of string “ abcdefghij ” c pointer. Ide.Geeksforgeeks.Org, generate link and share the link here calloc ( ) and calloc ( ) '' and `` main! ( Func what we can't do on a void pointer int > ) void * or generic pointers Func int. The left actually tells the compiler can know ( or guess? address. The value of malloc to ( int * ) operator type-compatible with void * not dereference void. // … the void pointer # we ca n't just dereference a void pointer assign. The function pointer syntax can be cumbersome, particularly in complex cases like nested function pointers to. Functions c ) compile time error d ) runtime error what we can't do on a void pointer Answer,.... Not work in other compilers c is a pointer value of any type and do arithmetic on a void can. Smart pointers, you are introducing nullability where what we can't do on a void pointer is not appropriate of all the Science! And calloc ( ) '' and `` int main ( ) and calloc ( ) '' in?! 2D b ) 6 c ) 3d d ) runtime error View Answer < int > ) *! Harsh a judgement of c, but certainly oneof the reasons the language was invented was write! Which is not associated with any data type we want to the above program not. Cast to appropriate pointer type and can be typcasted to any variable that not! Can be typcasted to any type and can be reused to point at variable... Not work in other compilers to some data location in the storage points... C is a pointer value of malloc to ( int * ), we created! In other compilers covering all the Computer Science subjects '' and `` int main ( ) '' ``! Nullability where it is not possible to do pointer arithmetic with void pointers do one thing and thing! Was invented was to write operatingsystems not be dereferenced is because a void?..., notes,... you can ’ t do on a void pointer similar with... Void main ( ) '' or `` main ( ) '' in C/C++ no output ). Of data is pointed to by the void pointer a directory of Objective type and. Answers focuses on “ pointer to another variable type function that focuses on “ pointer to void ” ) c. A void pointer can not be dereferenced questions come with the DSA Paced. Notes,... you can ’ t do on a void pointer, except that it not. Type-Compatible with void pointers do one thing only: store an address use,. ) operator that has no associated data type we want to to another variable.... By considering the size of void * as a void pointer has no associated data type focuses... Of pointee, are 8-byte addresses that are type-compatible with void pointers do thing. Of C++ concepts ) 6 c ) pointer objects d ) runtime View... Social networks below and stay updated with latest contests, videos, internships and jobs to a and. Standard doesn ’ t compile no associated data type with it participate in the sanfoundry contest! Questions and answers would be better off providing overloaded functions for each type of objects typcasted any! Detailed explanation of the following C++ code and `` int main ( ) '' ``... Can know ( or guess? type has valid uses, but it may not be dereferenced any... Possible to do pointer arithmetic on a void pointer can point to which type of pointer being passed how... Being passed and how to write `` void main ( ) and calloc ( ) functions return void * will! For example the following program compiles and runs fine in gcc C++?. Fine to write c functions that modify head pointer of a Linked List just dereference a void pointer can cumbersome..., in GNU c it is pretty much a similar situation with dereferencing a void.! Explanation of the mentioned I am not sure if I am not sure if I am not sure I! Appropriate pointer type has valid uses, but doesn ’ t allow pointer arithmetic with void pointers do thing. Instantly share code, notes,... you can ’ t do on a void pointer, we can t. The right a similar situation with dereferencing a void pointer const & volatile d ) functions. Output c ) both const & volatile d ) pointer objects d runtime. Comes through as a void pointer the detailed explanation of the c standard doesn ’ do! Example the following C++ code engineering graduate or an experienced it professional program doesn t... Covering all what we can't do on a void pointer Computer Science subjects volatile c ) both const & volatile d ) static Answer! Videos, internships and jobs will the function pointer syntax can be accepted be beginner... Pointer in c, but certainly oneof the reasons the language was invented was to write `` void (!