我试图在一个函数调用中创建一个连续的内存块,该函数调用将内存的第一部分作为指针数组指向其他块。该函数使用索引符号虽然我想使用小型指针指针阵列指针2d阵列
Type **TwoD(size_t rows, size_t cols)
{
Type **p1, **prows, *pcol;
p1 = (Type **)malloc(rows * sizeof(Type *) + rows * cols * sizeof(Type));
// ??? something wrong here ??? I'd rather use this style if possible
//
//index notation works
return prows;
}
我仍然得到一个分段错误:11当我使用p1作为返回值。 – blitzeus
我想出来了,每次我递增pcol + = cols,我都改变了for循环的终止部分,因此对于(end = p1 + rows; prows
blitzeus
我个人更喜欢索引符号的方式,似乎更容易遵循。 – user1500049