首页 > 解决方案 > 创建指向随机生成的 int 的指针列表

问题描述

我在生成随机数int*并将其存储到list<int*>.

我尝试了以下方法:

std::list<int*> generateInt(){
   std::list<int*> randomInt;

   int i = 0;

   // initialize random seed
   srand (time(NULL));

   while (i < 5){
      int* random = (int*)std::rand();
      std::cout << "Random int generated: " << random << std::endl;

      randomInt.push_back(random);
      i++;
   }

   return randomInt;
}

但我得到如下编译器问题

error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
       int* random = (int*)std::rand();
                                     ^

我不确定我是否在这里遗漏了一些重要的东西?任何帮助或建议将不胜感激。谢谢!

标签: c++c++11

解决方案


我能想到的最简单的方法是:

std::vector<int> generateInt(){
   std::vector<int> randomInt;

   int i = 0;

   // initialize random seed
   // srand (time(NULL)); Let that be the first line in main()

   while (i < 5){
      int random = std::rand();
      std::cout << "Random int generated: " << random << std::endl;

      randomInt.push_back(random);
      i++;
   }

   return randomInt;
}

没有必要引入指针或根本没有必要std::list


推荐阅读