使用(int *)calloc(size-1,2)是否有效?

时间:2018-09-05 09:59:26

标签: c

我正在制作一个用户可以编辑数组的程序。 我是编程新手。代码尚未完成。

我可以使用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;
 }

2 个答案:

答案 0 :(得分:0)

calloc的功能签名如下。

void * calloc( size_t num, size_t size );

确保num > 0size > 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)值的内存部分。