-3
A
回答
2
好了,其实代码非常具有typedef
滥用混淆可能走很长的路向两个你和编译器的问题。我自己不会在这个程序中有一个typedef。它在这里没有真正的抽象。下面是我建议(错误检查的一些遗漏):
struct cache_line {
char valid;
mem_addr_t tag;
struct cache_line* next;
};
struct cache_line** cache;
void initCache()
{
cache = malloc (sizeof(*cache) * S);
for (int i = 0; i < S; i ++){
struct cache_line** curr_p = &cache[i];
for (int j = 1; j < E; j++){
*curr_p = malloc(sizeof(**curr_p));
(*curr_p)->valid = 0;
(*curr_p)->tag = 0;
(*curr_p)->next = NULL;
curr_p = &(*curr_p)->next;
}
}
}
重点要注意的事情:
我删除了所有的类型定义。他们在这里没有真正的目的,而是尝试保存打字。他们是以代码质量为代价的。我也将其从
struct
中删除,因为我相信前面的说法也适用于它。我分配了规范的内存。通过编写
malloc(sizeof(*pointer_variable))
,无论pointer_variable
指向什么,都可以分配足够的内存。它有点类型不可知论者。我用“链接遍历”成语遍历链表。我不跟踪“节点”,而是跟踪指向节点的指针。在开始时它是
cache[i]
,并且在每次迭代时它都变成新分配节点内的指针。
相关问题
- 1. Java数据结构使用链接列表的堆栈
- 2. C++上的链接列表
- 3. C数组链接列表,将数组链接列表分配给另一个
- 4. 如何在C中的结构中显示链接列表C
- 5. 复制链接列表中的结构
- 6. 数组到链接列表C
- 7. 打印链接列表数组C++
- 8. 链接列表的数组
- 9. 使用链接列表复制堆栈的构造函数
- 10. 链接列表实现与结构
- 11. “Unix目录是‘链接’结构列表”
- 12. c中的链接列表,struct结构,分段错误
- 13. c中嵌套的结构体/链接列表
- 14. C中的链接列表节点,结构原型
- 15. 在C++中在堆上创建一个结构数组
- 16. 链接列表数组
- 17. 链接列表数组Java
- 18. 使用数组和双向链接列表存储书籍的数据结构
- 19. C中的列表中的结构 - 显示链接列表中存在的结构的成员
- 20. 应该从数组或链接列表java创建堆栈?
- 21. c链接列表绘制结构到屏幕
- 22. 冻结添加到链接列表(C)
- 23. 结构和链表(C)
- 24. 结构在C链表
- 25. 链接列表的数组表示
- 26. 如果链接列表和数组是基本数据结构什么类型的数据结构是树,哈希表,堆等?
- 27. C程序转移使用链接列表构建的堆栈中的项目
- 28. 在C++结构数组上的memset
- 29. C++链接列表
- 30. C++链接列表
用typedefing指针怎么这么酷......真的吗? –
@SouravGhosh - 收入保障。它使得代码非常糟糕,以至于没有人能够站在调试它的地方,而只是自己。 – StoryTeller
我不知道大声笑,骨架代码是这样的,我觉得它真的很奇怪 – genericmathstudent