回答
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 * pointer1分配给void * pointer2?面临一些问题
- 2. 类型Void []数组不可分配给类型void
- 3. 从不兼容类型'void(Button :: *)(int)'分配给'void(*)(int)'
- 4. 由void函数分配3d阵列
- 5. 错误:类型为“void(opca_hello ::)()”的参数不匹配“void *(*)(void *)”
- 6. 分配给void delegate的lambdas放弃C#中的非void返回类型吗?
- 7. Promise:类型void的参数不能分配给类型T
- 8. 错误:语义问题从不兼容类型'void'分配'int'
- 9. Angular Promise <void>'不可分配到类型
- 10. C++错误(从不兼容类型'void'分配给TreeNode *)
- 11. 类型为void是不能分配给输入任何
- 12. 类型Promise <void>不可分配类型Promise <customType []>
- 13. Angular TypeScript错误:类型'void'不可分配为键入'boolean'
- 14. void'不能分配给参数类型'(value:User [],index:number)=>布尔型'
- 15. 如何在cuda c中为“const uint64_t *”分配“const void *”?
- 16. 从不兼容类型'int'分配'int(^ __ strong)(void)'
- 17. void(* foo)(void):最新(void)的含义
- 18. (void **)&x和(void *)x有什么区别?
- 19. void *和void **有什么区别?
- 20. 类型'void'的参数不能分配给'Action'类型的参数
- 21. 使用void指针和偏移计算的分配值,以结构的构件
- 22. (void)^(void)in objective-c?
- 23. 不能在pthread_create函数中将void *(MyClass :: *)(void *)转换为void *(*)(void *)
- 24. 如何将void(__thiscall MyClass :: *)(void *)转换为void(__cdecl *)(void *)指针
- 25. 类型将一个void指针转换为内存分配不足的int值
- 26. 不能将void分配给WP 8.1中的隐式类型局部变量
- 27. 数组类型void
- 28. GCJ和<Void, Void>
- 29. void方法返回void?
- 30. void __iomem *和void * __iomem之间的区别?
不可能复制粘贴整本C语言书中。得到任何书,答案是在第10页。 –
可以是任何你想要的 –
很难从这段代码中推断出使用内存块的目的。也许它不打算具体使用。 – BLUEPIXY