小玉玉 发表于 2021-5-27 12:37:19

杨辉三角C语言实现遇到一个奇怪的问题

函数中的代码已经在力扣上过了,但是在main里面注释的for循环部分,只要打开,就会异常退出,百思不得其解。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

int** generate(int numRows, int* returnSize, int** returnColumnSizes){
    int i,j;
    *returnSize = numRows;
    *returnColumnSizes = (int*)malloc(numRows*sizeof(int));
    int **nums = (int**)malloc(numRows*sizeof(int*));
    for(i = 0;i < numRows;i++){
      (*returnColumnSizes) = i+1;
      nums = (int*)malloc((i+1)*sizeof(int));
      nums = 1;
      nums = 1;
      for(j = 1;j < i;j++){
            nums = nums + nums;
      }
    }
    return nums;
}

int main()
{
    int numRows = 5;
    int* returnSize;
    int* returnColumnSizes;
    int** sic;
    int a,b;
    sic = generate(numRows, returnSize, &returnColumnSizes);
    printf("%d\n", *returnSize);
    printf("%d\n", numRows);
    printf("%d\n", sic);
    for(a = 0;a < 5;a++){
//      for(b = 0;b < 5;b++){
//
//      }
    }
    return 0;
}

lei1996 发表于 2021-5-27 15:06:39

你main函数里的int* returnSize; 指针指向位置不明确
generate函数里的*returnSize = numRows;对野指针赋值 我在vs中报的是这个错误修改后能运行了

小玉玉 发表于 2021-5-27 18:04:18

lei1996 发表于 2021-5-27 15:06
你main函数里的int* returnSize; 指针指向位置不明确
generate函数里的*returnSize = numRows;对野指针赋 ...

非常感谢,解决问题了

万千只cnm 发表于 2021-5-27 18:28:00

解引用前务必初始化
并不会解引用赋值就 会开辟空间
页: [1]
查看完整版本: 杨辉三角C语言实现遇到一个奇怪的问题