我正在制作一个用户可以编辑数组的程序。 我是编程新手。代码尚未完成。
我可以使用calloc(size-1,2)
吗?那有效吗?
是否创建数组size-1
?
#include <stdlib.h>
#include <stdio.h>
int main()
{
int *pointer1,*pointer2,size,i,choice,j=0,index;
printf("Enter Elements of Arrays " );
scanf("%d",&size);
pointer1=(int*)calloc(size,2);
for(i=0;i!=size;i++){
scanf("%d",pointer1+i);
}
printf("Enter your choice \n" );
scanf("%d",&choice);
switch(choice)
{
case 0:
printf("Enter Index for Deletation ");
scanf("%d",&index);
/* I know that code is not finish. but calloc(size-1,2) is that valid or not ?*/
pointer2=(int*)calloc(size-1,2);
for(i=0;i!=size-1;i++){
if(i!=index){
*pointer2+i=*pointer1+i+j;
}
else{
j++;
}
}
for(i=0;i<=size;i++)
{
printf("\n%d",*pointer2+i);
}
break;
default:
printf("Error!");
}
return 0;
}
答案 0 :(得分:0)
calloc的功能签名如下。
void * calloc( size_t num, size_t size );
确保num > 0
和size > 0
答案 1 :(得分:0)
由于您没有告诉我们pointer2
是什么,因此很难回答。
但是,如果您写:
int *pointer2 = NULL;
size_t size = 10;
if (size-1 > 0)
{
pointer2 = calloc(size-1, sizeof *pointer);
}
pointer2
将指向能够存储size-1
整数(int
)值的内存部分。
[m|c|re]alloc
results 2
中的calloc(..., 2);
一样,魔术值很危险:如果pointer2
的类型发生更改,分配可能无效,或者如果某些体系结构上的类型大小发生变化,可能会出现问题。