gpt4 book ai didi

c - 在C中打印二维矩阵

转载 作者:行者123 更新时间:2023-11-30 20:36:59 25 4
gpt4 key购买 nike

我正在尝试创建并打印矩阵,但出现段错误。

int** init_dynamic_matrix (int l, int c);
void print_dynamic_matrix (int** ppints, int l, int c);

int main ()
{
int** ppints = NULL;
int l = 6, c = 3;

ppints = init_dynamic_matrix (l, c);
print_dynamic_matrix (ppints, l, c);

return 0;
}

int** init_dynamic_matrix (int l, int c)
{
int i = 0, j = 0;
int** ppaux = NULL;

ppaux = (int**) malloc (l * (sizeof (int*)));

for (i = 0; i < l; i++)
{
*(ppaux + i) = (int*) malloc (c * (sizeof (int)));

for (j = 0; j < c; j++)
{
ppaux[l][c] = 0;
}
}

return ppaux;
}

void print_dynamic_matrix (int** ppints, int l, int c)
{
int i = 0, j = 0;

for (i = 0; i < l; i++)
{
for (j = 0; j < c; j++)
{
printf ("%d", ppints[l][c]);
}
printf("\n");
}
}

最佳答案

    for (j = 0; j < c; j++)
{
ppaux[l][c] = 0;
}

错误如下:在外部 for 循环的第一次迭代中,您将执行 this ,但 ppaux[l] 尚未初始化,因此您会遇到段错误.

你的意思可能是这样的:

    for (j = 0; j < c; j++)
{
ppaux[i][j] = 0;
}

因为您刚刚创建了矩阵的第 i 行,并且希望将其设置为 0

关于c - 在C中打印二维矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34108283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com