- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 MSVC 上的 c 中使用 malloc
创建一个三维结构数组。它编译时没有错误,但是当我调试它时,它在初始化一些元素后给出错误。
声明:
typedef struct table_info
{
unsigned long size;
char code[33];
char path[300];
}table_info;
table
是一个全局变量,定义为:
struct table_info ***table=NULL;
malloc
并初始化表
:
char garb[33] = { '\0' };
char garb_path[300] = { '\0' };
table = (table_info***)malloc(ROWS* sizeof(**table));
for (int m = 0; m < ROWS; m++)
{
table[m] = (table_info**)malloc(COLS* sizeof(*table[m]));
for (int j = 0; j < COLS; ++j)
{
table[m][j] = (table_info*)malloc(DEPTH * sizeof(table[m][j]));
for (int k = 0; k < DEPTH; ++k)
{
table[m][j][k].size = 0;
strcpy_s(table[m][j][k].code, sizeof(table[m][j][k].code), garb);
memcpy(table[m][j][k].path, garb_path, sizeof(garb_path));
}
}
}
我的初始化正确吗?或者我应该纠正什么才能使其正常工作?
最佳答案
以下行中传递给 malloc
的大小不正确:
table[m][j] = (table_info*)malloc(DEPTH * sizeof(table[m][j]));
sizeof(table[m][j])
只是 sizeof(**table)
,即 sizeof(table_info *)
。它应该是 sizeof(table_info)
,或者 sizeof(*table_info[m][j])
或 sizeof(***table_info)
.
您也不需要转换 malloc
的结果,这在今天通常是不受欢迎的(至少在 C 中)。请参阅this post了解更多信息。
所以下面的代码应该可以工作(用 C 语言):
table[m][j] = malloc(DEPTH * sizeof(*table[m][j]));
关于在c中的堆上创建一个三维结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47570212/
我在 excel 中有一个具有以下结构的主表: 如何使用 vlookup 功能将其转换为第二张图片所示? (在黄色细胞中起作用)。 现在涉及三个键:白天、用户和数据类型(ADP_ERQ、ADP_SO)
我有一个函数可以搜索一些数据并返回一个 vector : vector findMyData(int byID) { vector tempVect; // do some search...
我正在尝试构建一个 3D Javascript 数组,但我不确定该怎么做,基本上我有 3 个数组,Provinces、Cities 和 Malls 都是连续的,所以我想创建一个 3D 数组来存储所有数
很明显,我提出了一个需要头脑 Storm 的问题。那,或者我太菜鸟了,看不到任何明显的答案: 如何实现一个标签系统,其中每个标签与网站的每个用户都有特定的关系? 我试图实现的一个非常简单的例子是系统跟
我是一名优秀的程序员,十分优秀!