【发布时间】:2010-10-27 15:51:05
【问题描述】:
这是一个最佳实践问题。我正在做一个数组
type * x = malloc(size*sizeof(type));
AFAIK sizeof 给出 size_t 的返回值。这是否意味着我应该使用 size_t 来声明或传递大小?此外,在索引数组时,我还应该使用 size_t 作为索引变量吗?这些的最佳实践是什么?这不是他们在学校教的东西,现在我正在学习严肃的 c++ 我想知道。
另外,如果有人提到我可以在哪里找到这类东西的最佳实践,那会有所帮助吗?一种程序员的礼仪书籍。
编辑: malloc 应该是 cudaHostAlloc 或 cudaMalloc,因为我正在开发一个在设备和主机上同时存储数组并同时更新两者的类。所以这里的 malloc 只是我实际要做的事情的占位符。
【问题讨论】:
-
一个好的“最佳实践”是将
sizeof与正在使用的变量一起使用:type * x = (type*) malloc( size*sizeof *x );这样,如果您稍后更新左侧大小中的类型,则无需更新右侧手边 (sizeof(type)) -
C++ 的最佳实践是不要使用
malloc()。你为什么用它? -
我在问题中编辑了 malloc 只是一个占位符,以表明我正在动态分配内存。在最终实现中,我将使用 cuda 接口来获取固定内存和 gpu 内存。所以不,我不会真正使用 malloc,但我实际要做的事情比问题要求的要复杂。