结构中的 malloc 1D 数组



我有一个结构体,我想在结构中malloc()一个 1D 数组,但它不允许我。这是我的结构。

//n = blabla
struct memory {
    int *results;
    results = malloc(n * sizeof(int));      
    int side;
} *pmemOUT;

错误是"'结果'之前的预期说明符-限定符-列表",但我真的不明白这意味着什么。我在互联网上读到这个错误意味着我在声明之前使用了某些东西,但我仍然无法理解出了什么问题。

不能在

结构内分配内存(实际上,结构声明中不能包含除成员类型声明之外的任何语句)。要么使用构造函数 (C++),要么为结构声明外部的 results 指针分配内存,例如

// this statement must be outside the struct definition
pmemOUT->results = malloc(n* sizeof(int));

例:

#include <stdio.h>
#include <stdlib.h>
int n = 16;
struct memory {
    int *results;
    int side;
} *pmemOUT;
int main()
{
    pmemOUT = (struct memory*)malloc(sizeof(struct memory)); /* allocate memory for the struct */
    pmemOUT->results = (int*)malloc(n * sizeof(int)); /* allocate memory for its member */    
    pmemOUT->results[0] = 10; /* assign something */
    printf("%dn", pmemOUT->results[0]); /* test that it worked */
    return 0;
}

相关内容

  • 没有找到相关文章

最新更新