我只是想问一下有什么区别
int *a = (int *)malloc(sizeof(int))
Run Code Online (Sandbox Code Playgroud)
和
int *a = malloc(sizeof(int))
Run Code Online (Sandbox Code Playgroud)
因为我在做项目时遇到了这种情况,我尝试创建一个数组作为指针,并动态为其分配内存。但是当我使用时,int * a = malloc(sizeof(int))我无法更改数组的任何值,从而导致分段错误,当我将其更改为int * a =(int *)malloc(sizeof(int))它时,一切都开始正常工作。更准确地说,这是有问题的代码:
int i = 0;
for (i = 0; i < valCounter; i++) {
if (strcmp(vars[i].name, name) == 0) {
return 2;
}
}
strcpy(vars[valCounter].name, name);
strcpy(vars[valCounter].type, type);
i--;
vars[i].intArrayVal = (int *)malloc((dimension + 5) * sizeof(int));
int j = 0;
char currentNumber[1000];
char elemente[1000];
int *pointer;
strcpy(elemente, elements);
strcpy(currentNumber, strtok(elemente, ","));
vars[i].intArrayVal[j++] = atoi(currentNumber);
while (currentNumber …Run Code Online (Sandbox Code Playgroud)