【发布时间】:2020-09-30 18:43:59
【问题描述】:
我已经动态分配了一个指向整数的指针——它是一个数组——我想用一组特定的数字填充这个数组。
int * myArr= (int*)malloc(SIZE_OF_ARRAY * sizeof(int));
if (myArr == NULL) {
return EXIT_FAILURE;
}
*myArr = {452,35,351,53,66};
我也尝试了其他选项:
myArr[] = {452,35,351,53,66};
myArr[5] = {452,35,351,53,66};
但问题是一样的。
【问题讨论】:
-
一个一个。或者来自另一个数组的
memcpy(在你的情况下可能毫无意义)。 -
你想要的功能是 memset ,这会让你去stackoverflow.com/questions/7202411/…
-
顺便说一句,因为这是
C,而不是C++,所以:int * myArr= (int*)malloc(SIZE_OF_ARRAY * sizeof(int));可以(and should be)简化为int * myArr= malloc(SIZE_OF_ARRAY * sizeof(*myArr));(主要指演员阵容,但如果对为什么我还更改了sizeof、read this 的论点感兴趣)。 -
你真的需要动态分配这个,还是只是一个指针类型,设置为指向一个初始化块?如果是后者,那么
int *p = &initializer_block;将无需额外的动态分配成本即可工作。
标签: arrays c dynamic-memory-allocation