gpt4 book ai didi

c - 递增变量将我的指针更改为指针数组值

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

尝试从格式化为表格的文档创建表格,但在 i++ 后表格中存储的值发生了变化,这是为什么?

int i, c, j=0;
int **vtab;

// C and L stands for columns ans lines

/* allocate memory for int value table */
vtab = (int **) malloc( L * sizeof( int *));
for ( i=0; i<L; i++)
{
vtab[i]= (int *) malloc( C * sizeof( int ));
}


do {
c = (fgetc(fp) - 10); /* This function returns the character read as an unsigned char cast to an int or EOF on end of file or error. */
if( feof(fp) ) {
break ;
}
printf("%c", c);
if (c != 32){
if ( j>C ){
j=0;
i++;
}
vtab[i][j] = c;
++j;
}
} while(1);

最佳答案

i 以未定义的随机值开头,因此行为未定义

请注意,int i, j=0;不会初始化i - 它只初始化j

除此之外,vtab 被声明为一个指向 int 指针的指针,但它从未被设置为指向任何地方,因此它也指向一个随机内存地址。

关于c - 递增变量将我的指针更改为指针数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386221/

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