c-如何初始化结构中的数组



我有一个定义为的结构

struct new{
  int x;
  int y;
  unsigned char *array;
};

其中,我希望数组是一个基于用户输入动态初始化的数组。内部主要功能:

struct new *sbi;
sbi->array = (unsigned char*)malloc(16 * sizeof(unsigned char));
      for(i=0; i<16; i++)
        {
          sbi->array[i] = 0;
        }
      for(i=0; i<16; i++)
        printf("Data in array = %un", (unsigned int)sbi->array[i]);

我确信我在malloc上做错了什么,但我没有得到它——它只是不断地给分段带来错误。

您将sbi声明为structnew的指针,但从不为其分配内存

struct new *sbi;
sbi = malloc(sizeof(struct new));

此外,不要强制转换malloc的结果,因为这可能会掩盖其他错误,并且不要忘记检查malloc返回值。

相关内容

  • 没有找到相关文章

最新更新