小编ank*_*oor的帖子

C&C++中数组的动态内存分配

查看C和C++代码中的用户输入(for循环内部).我们在C++的用户输入中使用*(p + i),在C中使用(p + i).什么原因在C中缺少*?Plz解释!看一下COMMENT行...里面的for循环

#include <iostream>

using namespace std;

int main()
{
  int n,i;
  cout << "Ent size" << endl;
  cin>>n;
  int *p = new int [n];
  for(i=0;i<n;i++)
    cin>>*(p+i);//LOOK AT THIS LINE
  cout<<"------------\n\n";
  for(i=0;i<n;i++)
    cout<<*(p+i)<<endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
#include <stdlib.h>
int main()
{
  int n;
  printf("Ent size!\n");
  scanf("%d",&n);
  int *p=(int *)malloc(n*sizeof(int));
  int i;
  for(i=0;i<n;i++)
    scanf("%d",(p+i));//LOOK AT THIS LINE

  printf("-------\n\n");
  for(i=0;i<n;i++)
    printf("%d\n",(p+i));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ arrays dynamic-memory-allocation dynamic-arrays

-6
推荐指数
1
解决办法
154
查看次数