Inside the main() function of "particletest.c", we have now allocated an array of 1024 particles of type Particle. As we would like this number to be flexible in the future, the array is allocated dynamically using malloc(), which is part of the C Standard General Utilities Library. 在"particletest.c"的 main()函数中,我们动态分配了一个包含 1024 个 Particle 类型粒子的数组。为了使这个数字在未来可以灵活调整,我们使用 C 标准通用工具库中的 malloc()函数来动态分配数组。 Our implementation uses the following approach: 我们的实现采用了以下方法: #include <stdio.h> #include <stdlib.h> #define NUM_PARTICLES 1024 ··· int main() { Particle *particles = (Particle *)malloc(NUM_PARTICLES); ··· } Despite the fact that the declaration seems correct, the code produces a segmentation fault exception in some experiments. However, in some other situations, no apparent errors are produced. Do you consider the declaration and allocation to be correct (and, thus, the error located somewhere else in the source code)?判断题
登录即可查看完整答案
我们收录了全球超50000道真实原题与详细解析,现在登录,立即获得答案。
类似问题
how might you interpret it if tmp == NULL (tmp pointer is NULL) after this calloc statement? In other words what are possibilities? tmp = calloc(elem, size);
How much memory should be malloc'ed? In other words, how would you replace XXXXXXXXXX ? The strcpy definition is: char* strcpy(char* dest, const char* src); /* return a freshly-malloc'd copy of s */ /* or 0 if malloc fails */ /* It is the caller's responsibility to free the returned string when done. */ char *strdup(const char *s) { char *s2; s2 = malloc(XXXXXXXXXX); if(s2 != 0) { strcpy(s2, s); } return s2; }
This program will finally allocate the memory of ___ bytes that “ptr” will point to. #include<stdio.h> #include<stdlib.h> int main() { char *ptr; ptr = (char*)malloc(sizeof(char)*4); ptr = (char*)realloc(ptr,sizeof(char)*8); return 0; }
Which of the following will zero the memory allocated?
更多留学生实用工具
希望你的学习变得更简单
加入我们,立即解锁 海量真题 与 独家解析,让复习快人一步!