回答
void* space_to_use = malloc(size);
// malloc always return void pointer that means it can be typecast to any type.
// before using void pointer it is necessary to typecast it into proper type.
// for example:-
// if size is 8 byte.It will allocate 8 byte of memory.
/*
void* space_to_use = malloc(size);
char * ptr = (char*)space_to_use;
*/
// These two line can be combine in one statement.
char * ptr = (char*)malloc(size*sizeeof(char));
// NOTE:sizeof(char) is to make sure platform independent.
// Same for int if we want to store some integer.
int * ptr = (int*)malloc(size*sizeeof(int));
仅供参考:'sizeof char'被定义为始终为'1',因此从来没有必要通过它。但是,CHAR_BIT定义可能不同。 –
另请参阅[我是否投出了malloc的结果?](https://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) –
是的,它会一直是一个字节,但它将泛型整数表示为整数*或结构变量或指针。我们需要添加sizeof(int)或sizeof(int *)或sizeof(strcuct abcd),所以如果我们提到sizeof(char),它不会损害任何东西。 – Rohit
- 1. 将值分配给void *
- 2. 无法将类型'Void'(aka'()')的值分配给类型'() - > Void'
- 3. 如何将void * pointer1分配给void * pointer2?面临一些问题
- 4. 从不兼容类型'void(Button :: *)(int)'分配给'void(*)(int)'
- 5. 类型Void []数组不可分配给类型void
- 6. 在C++中用void *分配内存结构内存分配
- 7. 2darray动态分配void函数
- 8. 全局分配函数和const void *
- 9. 与void *类型内存分配混淆?
- 10. 由void函数分配3d阵列
- 11. 错误:类型为“void(opca_hello ::)()”的参数不匹配“void *(*)(void *)”
- 12. 分配给void delegate的lambdas放弃C#中的非void返回类型吗?
- 13. std :: map的预分配<unsigned long long,void *>,如何正确预分配?
- 14. Promise:类型void的参数不能分配给类型T
- 15. void void
- 16. Angular Promise <void>'不可分配到类型
- 17. 当结构有void *指针时,我该如何分配值
- 18. void'不能分配给参数类型'(value:User [],index:number)=>布尔型'
- 19. iOS错误:从NSArray对象(类型'void')分配给NSMutableString?
- 20. 从不兼容类型'int'分配'int(^ __ strong)(void)'
- 21. C++错误(从不兼容类型'void'分配给TreeNode *)
- 22. Angular TypeScript错误:类型'void'不可分配为键入'boolean'
- 23. 类型为void是不能分配给输入任何
- 24. 类型Promise <void>不可分配类型Promise <customType []>
- 25. $ .grep返回类型为void是不能分配给boolean类型
- 26. 错误:语义问题从不兼容类型'void'分配'int'
- 27. 从不兼容类型'void *'分配'uint8_t *'(aka'unsigned char *')'
- 28. 错误:从不兼容类型分配void
- 29. void(* foo)(void):最新(void)的含义
- 30. (void **)&x和(void *)x有什么区别?
不可能复制粘贴整本C语言书中。得到任何书,答案是在第10页。 –
可以是任何你想要的 –
很难从这段代码中推断出使用内存块的目的。也许它不打算具体使用。 – BLUEPIXY